redis基本类型
Redis 简介
Redis (Nosql--not only sql)是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供String,list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
Redis与其他key-value存储有什么不同?
-
Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
-
Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
关于RedisKey的基本命令
- keys * 查看所有的key
- set key value 设置添加key
- EXISTS key 判断当前是否存在
- move key 移除key
- EXPIRE key time 是指key的过期时间,time单位为秒
- ttl key 查看当前key剩余时间
- type key 查看key的类型
- flashdb 清空当前数据库中的所有 key。
注:官网查询命令:https://redis.io/commands
String(字符串类型)
- APPEND key "String" 追加字符串,如果该key不存在,则新增
- STRLEN key 查看该字符串长度
- get key 获得key 的value
- GETRANGE key num1 num2 截取指定key的字符串,如果num等于-1,则该命令和get key是一样的
- SETRANGE key num String 替换指定下标位置开始的字符串
- incr key 实现值的加1
- decr key 实现值的减1
- INCRBY key num 实现增长指定数字
- DECRBY key num 实现值减少指定数字
- setex key time "String" 设置过期时间(set with expire)
- setnx key "String" 不存在再设置(set if not exist),返回值为1则成功,反之则失败,常用于分布式锁中
- mset key1 value1 key2 value2... 实现批量设置key-value
- mget key1 key2.... 实现批量获取value
List
所有的list命令都是实用 l 开头的
- LPUSH list value 实现添加到list中
- LRANGE list num1 num2 实现从指定位置num1获取,到num2为止,如果num2为-1则获取全部list。
- 注:该方法展示是越晚添加越先展示
- Rpush list value 实现从list的尾部添加
- Lpop list 从list的头部移除一个
- Rpop list 从list的尾部移除一个
- Lindex list num 获取指定位置的list的值
- Llen list 获取list的长度
- ltrim list num1 num2 通过下标从指定位置开始截取指定长度的list,是在原list上进行操作
- rpoplpush list1 list2 移除最后一个元素并添加到另一个list中
- lset list num value 可将list中指定位置的值更换成输入的值。如若不存在列表或者指定位置不存在就报错
- linsert list before||after privodvalue newvalue 在list中的值的前面或者后面插入新的值 ,如果list不存在,就新建一个列表
set
set的所有命令都是以s开头
- sadd set String 添加到set中
- smembers set 查看set
- sismember set String 判断一个值是否在set集合中
- scard set 获取set中的元素个数
- srem set String 移除set中指定的元素
- srandmember set (num) 随机筛选一个或者指定个数元素
- spop set 随机删除key
- smove set1 set2 String 移动一个指定的 元素到另一个set集合中
- sdiff set1 set2 两个set集合的差集
- sinter set1 set2 两个set集合的交集
- sunion set1 set2 两个几个的并集
hash哈希类型
hash是map集合,所以在set的值变成了map集合,本质和String类型没有很大的区别,多了一个key-value
- hset hash key value 给哈希中添加值
- hget hash key 获取指定hash中的指定key的值
- hmset hash key1 value1 key2 value2...给哈希添加多个值
- hmget hash key1 key2 获取多个值
- hgetall hash 获取指定hash中的所有的键值对
- hdel hash key 删除指定的key
- hlen hash 获取hash中的长度
- hkeys hash 获取所有的key
- hvals hash 获取所有的value
Zset(有序集合)
在set的基础上,增加量 一个值,如:set k1 v1 zset k1 score v1

浙公网安备 33010602011771号