Redis 6大数据结构学习
数据类型 |
描述 |
备注 |
string |
类似于Map<string,Object>,已key-val形式存储,默认会覆盖存在的key对应的value,A String value can be at max 512 Megabytes in length |
key value |
list |
linked List,按照插入顺序排序,无论数据多大,头插尾插效率一样,但是查询较慢,集合的最大长度2的32次方-1 |
key value [value ...] |
set |
string的无序不重复集合,集合的最大长度2的32次方-1,可以做交集,并集,查集操作 |
key member [member ...] |
hash |
类似于Map<string,Map<string,Object>>,集合中可有最大k-v键值对个数为2的32次方-1 |
key field value [field value ...] |
zset |
具有hash与set的特性,有序不重复,排序先对比score后对比member,score可重复,但是member是不重复的 |
key score member [score member ...] |
stream |
https://redis.io/topics/streams-intro |
|
string
TODO |
命令 |
用法 |
描述 |
其它 |
单个 |
set |
set key value [EX seconds 或 PX milliseconds] [NX或XX] |
设置值 |
|
|
setex |
setex key seconds value |
|
同set key value EX seconds |
|
setnx |
setnx key value |
|
同set key value NX |
单个 |
get |
get key |
获取值 |
|
随机访问 |
getrange |
getrange key start end |
|
下标从0开始,包含start,end,负数表示倒数第几位 |
|
setrange |
setrange key offset value |
|
下标从0开始,包含start |
批量 |
mset |
mset key value [key value ...] |
|
|
批量 |
mget |
mget key [key ...] |
|
返回数组 |
加1 |
incr |
incr key |
|
value需为integer类型 |
减1 |
decr |
decr key |
|
value需为integer类型 |
加N |
incrby |
incrby key decrement |
|
value需为integer类型,increase(增加) |
减N |
decrby |
decrby key decrement |
|
value需为integer类型 ,decrease (减少) |
追加 |
append |
append key value |
|
存在追加,不存在则新建,返回追加后的长度 |
设置超时时间 |
expire |
expire key seconds |
|
|
设置超时时间 |
pexpire |
pexpire key milliseconds |
|
|
解除超时时间 |
persist |
persist k |
|
给未设置超时时间的key设置则返回0,否则1 |
查询剩余存活时间 |
ttl |
ttl key |
|
按秒 |
查询剩余存活时间 |
pttl |
pttl key |
|
按毫秒 |
详解string 中的set命令
组 键 值 [EX秒|PX毫秒] [NX|XX] [KEEPTTL]
- [EX秒|PX毫秒] 设置超时时间
- [NX|XX] 设置覆盖规则 NX,当key存在则不覆盖,XX若key存在则覆盖
- 6.0:添加了该KEEPTTL选项
eg:
设置了k的值为v,超时时间为60秒
NX 当k不存在时才会执行成功,所以返回nil
XX 当k存在时覆盖,结果返回成功,而且超时时间也会覆盖掉
List(Linked Lists)
TODO |
命令 |
用法 |
描述 |
其它 |
添加 |
rpush |
rpush key value [value ...] |
|
在左侧(在头部)插入,返回长度 |
|
lpush |
rpush key value [value ...] |
|
在右侧(在尾部)插入,返回长度 |
|
lpushx |
lpushx key value |
|
当key存在则在头部插入元素,返回长度,不存在则插入失败 |
|
rpushx |
rpushx key value |
|
当key存在则在尾部插入元素,返回长度,不存在则插入失败 |
查询 |
lrange |
lrange key start stop |
|
下标从0开始,包含start,end,负数表示倒数第几位 |
删除 |
lpop |
lpop key |
|
从头部检索元素并删除元素,若列表为空则返回nil,否则返回删除的元素 |
|
rpop |
rpop key |
|
从头部检索元素并删除元素,若列表为空则返回nil,否则返回删除的元素 |
删除 |
ltrim |
ltrim key start stop |
|
下标从0开始,包含start,end,负数表示倒数第n下标,范围外的元素将被删除 |
|
blpop |
blpop key [key ...] timeout |
|
从头部检索元素并删除元素,若列表在时间内为空则返回nil,否则返回键的名称,元素的值 |
|
brpop |
brpop key [key ...] timeout |
|
从尾部检索元素并删除元素,若列表在时间内为空则返回nil,否则返回键的名称,元素的值 |
|
llen |
llen key |
|
长度 |
|
lindex |
lindex key index |
|
返回指定下标的元素值,下标从0开始 |
|
LINSERT |
LINSERT key BEFORE或AFTER pivot value |
|
在指定元素之前或后面添加元素 |
|
lrem |
lrem key count value |
|
删除指定范围内的指定元素,范围count=0时全链表,count>0,count到尾部,count<0,从尾部到倒数第-count |
|
lset |
lset key index value |
|
重置指定下标的元素值 |
|
rpoplpush |
rpoplpush source destination |
|
以rpop形式弹出source元素,以lpush形式添加到destination |
|
brpoplpush |
brpoplpush source destination timeout |
|
比上面多了一个等待的超时时间 |
hash
- 类似于 Map<String,Map<String,object>>
TODO |
命令 |
用法 |
描述 |
其它 |
|
hset |
hget key field |
|
|
|
hmset |
hmset key field value [field value ...] |
|
|
|
hsetnx |
hsetnx key field value |
|
当key不存在才加入成功 |
|
hget |
hget key field |
|
|
|
hmget |
hmget key field [field ...] |
|
|
|
hscan |
hscan key cursor [MATCH pattern] [COUNT count] |
|
迭代hash |
|
hgetall |
hgetall key |
|
获取所有的域及值 |
|
hkeys |
hkeys key |
|
|
|
hvals |
hvals key |
|
|
|
hdel |
hdel key field [field ...] |
|
|
|
hexists |
hexists key field |
|
|
|
hincrby |
hincrby key field increment |
|
key中field的值增加incremen,incremen可为负数,但只能是整数 |
|
hincrbyfloat |
hincrbyfloat key field incremen |
|
同上,incremen可为浮点数 |
|
hstrlen |
hstrlen key field |
|
获取指定key中域的值的长度 |
Sets
TODO |
命令 |
用法 |
描述 |
其它 |
|
sadd |
sadd key member [member ...] |
|
|
|
scard |
scard key |
|
返回元素个数 |
|
sdiff |
sdiff key [key ...] |
|
返回第一个集合与其他集合不同的元素 |
|
sdiffstore |
sdiffstore destination key [key ...] |
|
将不同元素储存在destination中 |
|
sinter |
sinter key [key ...] |
|
返回所有集合的交集 |
|
sinterstore |
sinterstore destination key [key ...] |
|
将交集存储在集合destination中 |
|
sunion |
sunion key [key ...] |
|
并集 |
|
sunionstore |
sunionstore destination key [key ...] |
|
将得到的并集存在集合destination |
|
smembers |
smembers key |
|
返回集合全部元素 |
|
sismembers |
sismembers key |
|
返回是否集合元素 |
|
smove |
smove source destination member |
|
将集合source中的元素member移动到集合destination |
|
spop |
spop key [count] |
|
从集合key中随机移除count个元素 |
|
srandmember |
srandmember key [count] |
|
count为正数,随机返回元素不重复,负数元素会重复,返回个数是count的绝对值,默认为1,不会改变原集合 |
|
srem |
srem key member [member ...] |
|
删除指定元素 |
|
|
sadd setnm:tags 1 |
|
给集合添加标签 |
|
|
smembers setnm:tags |
|
查询集合的标签 |
ZSET
TODO |
命令 |
用法 |
描述 |
其它 |
|
zadd |
zadd key [NX或XX] [CH] [INCR] score member [score member ...] |
|
|
|
zcard |
zcard key |
|
返回元素个数 |
|
zcount |
zcount key min max |
|
返回score在min max范围内的,包含上下限 |
|
zincrby |
zincrby key increment member |
|
通过member给score增加increment,increment可为负数 |
|
zinterstore |
zinterstore destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM或MIN或MAX] |
|
|
|
zunionstore |
zunionstore destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM或MIN或MAX] |
|
|
|
zlexcount |
zlexcount key min max |
|
|
|
zpopmax |
|
|
|
|
zpopmin |
|
|
|
|
zrange |
zrange key start stop [WITHSCORES] |
|
下标从0开始,-1表示倒数最后一个…… |
|
zrevrange |
zrevrange key start stop [WITHSCORES] |
|
|
|
zrangebylex |
zrangebylex key min max [LIMIT offset count] |
|
** |
|
zrangebyscore |
zrangebyscore key min max [WITHSCORES] [LIMIT offset count] |
|
** |
|
zrevrangebylex |
zrevrangebylex key max min [LIMIT offset count] |
|
|
|
zrevrangebyscore |
zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count] |
|
|
|
zrank |
zrank key member |
|
下标从零开始 |
|
zrevrank |
zrevrank key member |
|
同上,返回倒数 |
|
zrem |
zrem key member [member ...] |
|
|
|
zremrangebylex |
zremrangebylex key min max |
|
|
|
zremrangebyscore |
zremrangebyscore key min max |
|
|
|
zremrangebyrank |
zremrangebyrank key start stop |
|
|
|
zscore |
zscore key member |
|
返回对应的score |
|
|
zscan key cursor [MATCH pattern] [COUNT count] |
|
|
key操作
TODO |
命令 |
用法 |
描述 |
其它 |
|
exists key |
|
|
是否存在 |
|
type key |
|
|
返回类型 |
|
del key |
|
|
删除 |
|
keys * |
|
|
查询所有key |
当然还有其他高级的数据类型,请移步官网,自主学习总结,如理解有误,烦请大牛赐教,感谢感谢
个人愚见:感觉只看不如敲命令行,稍作理解