Redis(二)——常用数据类型的命令
一、key通用命令
1.del key1 [key2] 删除
2.dump key 序列化
3.exists key 检查是否存在
4.expire key seconds 设置多少秒过期
5.pexpire key milliseconds 设置多少毫秒过期
6.persist key 移除过期时间
7.ttl key 返回还有多少秒过期(time to live)
8.pttl key 返回还有多少毫秒过期
9.rename key newkey 修改名字,如果newkey存在则会把原来的value覆盖掉
10.renamenx key newkey 仅当newkey不存在时修改名字,避免覆盖
11.type key 返回key的类型
12.匹配模式
*表示任意个任意字符,?表示1个任意字符
13.flushdb 清除全部key
二、字符串类型SDS
1.set key value
2.get key
3.getrange key start end 返回子串,下标从0开始,前闭后闭
4.mset key1 value1 [key2 value2][key3 value3] 设置若干个key-value对
5.mget key1 [key2] [key3] 获取若干个key的value
6.setex key seconds value 设置key过少秒过期并且设置value
7.setnx key value 只有在key不存在时设置key的值,避免覆盖,丢失数据
8.strlen key 获取长度
9.msetnx key1 value1 [key2 value2] 设置若干个全都不存在key的key-value
10.incr|decr key key的数字值+1|-1
11.incrby key increment key的数字值+increment
12.decrby key decrement key的数字值-decrement
13.incrbyfloat key increment key的浮点值+increment,浮点值没有减的
三、hash命令
1.将哈希表hash中的field字段的值设为value
- hset|hsetnx hash field value
- hmset hash field1 value1 [field2 value2]
2.获取哈希表中的field字段的值
- hget hash field
- hmget hash field1 [field2]
hgetall hash
3.哈希表的数值或浮点值+increment
- hincrby hash field increment
- hincrbyfloat hash field incerment
4.获取哈希表中的字段
hkeys hash
5.获取哈希表中的字段数量
hlen hash
6.删除哈希表中的字段
hdel hash field1 [field2]
7.获取哈希表中的所有值
hvals hash
8.判断哈希表中的字段是否存在
hexists hash field
四、list命令
1.左右插入 ,按顺序压进去,value1是第一个
- lpush list value1 [value2]
- rpush list value1 [value2]
2.左右弹出
- lpop list
- rpop list
3.列出数据集合,前闭后闭,0 -1表示列出所有
lrange list start end
4.长度 llen list
5.删除count个值为value的元素,从左开始
lrem list count value
6.返回指定下标值,下标从0算起
lindex list index
7.替换指定下标的值,必须存在元素蔡可以使用
lset list index value
8.保留列表某一段下标之间的元素,其他全部删除
ltrim list start end
9.在第一个出现的指定值pivot 的 前/后插入值value,
linsert list before|after pivot value
五、无序不重复集合set命令
1.sadd set member1 [member2] 添加元素进入集合
2.srem set member1 [member2] 删除集合中的元素
3.smembers set 列出所有元素
4.sismember set member 判断元素是否在集合中
5.scard set 元素个数
6.srandmember set [count] 随机获取集合中的若干个元素
7.差集 交集 并集
- sdiff set1 [set2] [set3] 返回set1对于后续集合的差集
- sdiffstore destination set1 [set2] [set3] 将set1对于后续集合的差集存储在destination中
- sinter set1 [set2] [set3] 交集
- sinterstore destination set1 [set2] [set3] 将若干个集合的交集存储在destination中
- sunion set1 [set2] [set3] 并集
- sunionstore destination set1 [set2] [set3] 将若干个集合的并集存储在destination中
8.将一个元素member从source移动到destination
smove source destination member
9.随机移除一个元素并返回该元素值
spop set
六、有序不重复集合zset命令
1.zadd zset score1 member1 [scour2 member2]
2.zcard zset 集合成员数
3.zcount zset min max 分数区间的成员数
4.zincrby zset increment member 为成员加分
5.zscore zset member 获取成员分数
6.获取指定索引区间的成员[+分数]
- zrange zset start end [withscores]
- zrevrange zset start end [withscores] 分数由高到低
7.获取分数区间的成员[+分数]
- zrange zset min max [withscores]
- zrevrangebyscore zset max min [withscores] 分数由高到低
8.删除成员
- zrem zset member1 [member2] 删除指定成员
- zremrangebyscore zset min max 删除分数区间的成员
9.返回成员索引,从0开始
- zrank zset member 返回由低到高顺序的索引
- zrevrank zset member 返回成员由高到低顺序的索引
七、基数统计HyperLogLog
不同于集合,它可以插入很多元素,但是只保留元素的数量,不能返回元素本身。说白了就是计数,计数在插入时只会对元素+1,不会耗费空间来存储元素。
1.pfadd key element1 [element2] [element3]
添加元素
2.pfcount key1 [key2]
计算key的基数数量,多个key则返回它们合并后所有元素的计数
3.pfmerge destkey key1 [key2]
将若干个key合并后存储在destkey里,原来的key不会消失
参考&引用
https://www.runoob.com/redis/redis-tutorial.html
《redis设计与实现》