redis的list、hash、set、sorted_set

本文详细解读了Redis中list、hash、set和sortedset的数据类型,涵盖了添加、修改、获取、删除以及高级操作,适合深入理解Redis在实际应用中的高效存储和处理。

list 双向链表  有存取顺序 可重复

从左/右添加/修改数据

lpush key value1 [value2] …

rpush key value1 [value2] …

获取数据

lrange key start stop //获取从左数第start到stop个元素,从0开始

lindex key index //查询第i个元素

llen key //list的长度

获取并移除数据

lpop key //获取并删除左边第一个元素

rpop key //获取并删除右边第一个元素

扩展操作

规定时间内获取并移除数据

blpop key1 [key2] timeout

brpop key1 [key2] timeout

hash mapk-v))

支持对field进行数值计算

应用场景:点赞、收藏、详情页(面向一个人/一个事物的doc)

添加/修改数据

hset key field value

获取数据

hget key field

hgetall key

删除数据

hdel key field1 [field2]

添加/修改多个数据

hmset key field1 value1 field2 calue2

获取多个数据

hmget key field1 field2 …

获取哈希表中字段的数量

hlen key

获取哈希表中是否存在指定的字段

hexists key field

获取哈希表中所有的字段名和字段值

hkeys key //字段名

hvals key //字段值

设置指定字段的数值数据增加指定范围的值

hincrby key field increment //指定数值增长指定的数

hincrbyfloat key field increment

set        无序 去重

集合操作

求两个集合的交、并、差集

sinter key1 [key2] //交集

sunion key1 [key2] //并集

sdiff key1 [key2] //差集(key1有但是key2没有的)

求两个集合的交、并、差集并存储到指定集合中

sinterstore destination key1 key2

sunionstore destination key1 key2

sdiffstore destination key1 key2

随机事件:

srandmember key count

正数:取出一个去重结果集 不能超过已有集合

负数:取出一个可带重复的结果集,满足你要的数量

0:不返回

应用场景:抽奖 奖品:10

用户:<10/>10

中奖:是否多次

正数:每人最多一份礼物

负数:人数可以大于礼物数,一人可以多份

spop key:

年会抽奖(一次只取出一个)

sorted set(zset)

物理内存左小右大排序

不随命令发生变化

zrange

zrevrange

添加数据

zadd key score1 member1 [score2 member2]

获取全部数据

zrange key start stop [WITHSCORES]//按照从小到大的顺序,加上WITHSCORES,就会带上scores一起显示

zrevrange key start stop [WITHSCORES]//按照从大到小的顺序

删除数据

zrem key member [member …]

按条件获取数据

//查询scores在某个范围内的值

zrangebyscore key min max [WITHSCORES] [LIMIT]

//查询key某个索引范围内的值

zrevrangebyscore key max min [WITHSCORES]

条件删除

zremrangebyrank key start stop

zremrangebyscore key min max

注意:

min与max用于限定搜索查询的条件

start与stop用于限定查询范围,作用于索引,表示开始和结束索引

offset与count用于限定查询范围,作用于查询结果,表示开始位置和数据总量

获取集合数据总量

zcard key //获取总量

zcount key min max //获取某一个范围的总量

集合交、并存储操作

zinterstore destination numkeys key [key …] //求和

zunionstore destination numkeys key [key …]

集合操作:权重 /聚合指令

获取数据对应的索引(排名)

zrank key member //正数第几位

zrevrank key member //倒数第几位

score 值获取与修改

zscore key member //获取

zincrby key increment member //score递增 increment

排序时怎么实现的,增删改查的速度?

底层是用的存储结构:skip list(跳跃表)

储存空间换速度

平均的增、删、改、查的速率相对最优(大数据量综合评估)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值