Redis基本数据结构的常用命令以及用法

138 阅读3分钟

「这是我参与2022首次更文挑战的第9天,活动详情查看:2022首次更文挑战

List(基本的数据类型,列表)

在redis里面,可以用list实现栈、队列、阻塞队列等

列表的插入与获取:
    Lpush key value:将一个值或者多个值,插入到key这个list的头部
    Lrange key start end:获取key这个list中的值,通过区间,获取具体的值
    Rpush key value:将一个或者多个值,插入到key这个列表的尾部

列表元素的移除:
    Lpop key:移除当前key的头部元素
    Rpop key:移除当前key的尾部元素

Lindex key index:通过下标获取list中的某一个值
Llen key:返回列表的长度

Lrem key count value:移除一个或者多个当前key里面的value

ltrim key start end:通过下标截取指定长度的元素,截取后list已经被改变,只剩下截取的元素

rpoplpush key1 key2:移除key1这个列表的最后一个元素,将它移动到key2列表里

lset key index element:将列表中指定下标的值替换为另外一个值,
相当于更新操作,如果这个索引的值在列 表中不存在,则会报错

linsert:将某个具体的值插入到列表里某个元素的前面或者后面

Set(集合)

首先要注意的是set中的值是不能重复的!

sadd key value:set集合里面添加元素,不能重复添加,添加成功返回1
smembers key:查看指定set的所有的值
sismember key value:查看key里面value是否存在,存在就返回1
scard key:获取集合中内容元素的个数

srem key member:移除一个指定元素

srandmember key count:随机选取count数量的元素

spop key:随机删除一个集合里的元素

smove讲一个集合里面指定的元素移动到另外一个集合里

集合的差集sdiff、交集sinter、并集sunion:

用Set集合可以实现相当于微博的共同关注,共同好友,共同爱好这样的功能,因为可以直接把条件一致的元素放在一个Set里。

Hash(哈希)

hset key field value:set一个具体的key-value
hget key field:获取一个字段值
hmset key field value[field value...]:set多个key-value
hmget key field[field..]:获取多个字段值
hgetall key:获取全部的数据

hlen key:获取hash表的字段数量
hexists key field:判断hash表字段是否存在

hkeys key:获取key中所有的field
hvals key:获取key中所有的value

hincrby key field increment:为key中的field设置指定增量(增量可以为正,可以为负)

hsetnx key field value:如果不存在则可以设置,如果存在则不能设置

hash更多地用来存储变更,尤其是对象的数据。

Zset(有序集合)

zadd添加一个或者多个元素,zadd key score value
查看范围内的元素,zrange key start end

zrangebyscore:排序, -inf:负无穷,+inf:正无穷,也可以返回某个区间的范围内的元素

zrevrange key start stop [withscores]:排序,可以升序,可以降序,区间是左闭右开

rem key member:移除key里面的元素

zcard key:获取集合中的元素个数 zcount key start end:获取区间里面元素个数