ASP.NET Core微服务(六)——【redis命令详细列表2】

举报
红目香薰 发表于 2022/10/28 00:20:24 2022/10/28
【摘要】 ​ ​编辑ASP.NET Core微服务(六)——【redis命令详细列表2】目录ASP.NET Core微服务(六)——【redis命令详细列表2】基础环境redis列表类型——list删除列表key的表头元素【最左】并返回:lpop key删除列表key的表头元素【最右】并返回:rpop key获取列表长度删除列表值Redis集合类型——set添加set查询set判断指定元素在指定集合中...

 编辑

ASP.NET Core微服务(六)——【redis命令详细列表2】


目录

ASP.NET Core微服务(六)——【redis命令详细列表2】

基础环境

redis列表类型——list

删除列表key的表头元素【最左】并返回:lpop key

删除列表key的表头元素【最右】并返回:rpop key

获取列表长度

删除列表值

Redis集合类型——set

添加set

查询set

判断指定元素在指定集合中是否存在sismember

获取指定集合的长度:scard key

移除指定集合中一个或者多个元素:srem key member1

随机获取指定集合中的n个元素srandmember key [count]

返回差集sdiff key1 key2

返回交集sinter key1 key2

返回并集sunion key1 key2




基础环境

https://blog.csdn.net/feng8403000/article/details/127231048

redis列表类型——list

列表左侧插入value——list列表头部

lpush key value 

示例

lpush mylist a1
lpush mylist a2

查看list列表值范围

lrange key startIndex endIndex

这里的100就是个超下标范围的数字,没有其它特殊含义,为了表示redis中的list不会出现越界异常,也可以使用-1代表结尾。

lrange mylist 0 100
lrange mylist 0 -1

编辑

列表右侧插入value——list列表尾部

rpush key value

lrange mylist 0 -1
rpush mylist a3
rpush mylist a4
lrange mylist 0 -1

注意向右添加,效果也是很明显的呢。 

编辑

删除列表key的表头元素【最左】并返回:lpop key

在以上列表中可以看到其中mylist的最左侧是a2,我们尝试获取一下:

编辑

删除列表key的表头元素【最右】并返回:rpop key

在以上列表中可以看到其中mylist的最右侧是a4,我们尝试获取一下:

编辑

我们可以看到,无论是左右都会在获取信息后在列表中删除自身的存在。

这个狠重要,在做队列操作的时候还是很有帮助的。

获取列表长度

llen key

编辑

我们当前的数量可能会少一些,但是如果这个列表是做k线的,那么就会很长,可能是每分钟1个点,在以年为单位计算的时候就很有必要了,我们也不可能给用户这么多信息,我当年做的时候只提供1000条最近数据,超过1000条需要vip功能,多收一次,挺happy的呢。毕竟数据是无价的。

删除列表值

lrem key count value

这里这个count需要说明一下:count>0:从表头开始数前n个;count<0:从表尾开始数前n个;count=0:移除所有跟value相同的元素。

lrem mylist 0 a1

lrange mylist 0 -1

编辑

对于列表来说Redis命令就演示完毕了。 

Redis集合类型——set

set集合大家有知道的特性是无序且不重复,那么很多之后可以直接使用set去重。Redis中的集合set也是有相同特性的。

添加set

sadd key value 

sadd myset a1 a5 a6

编辑

查询set

smembers key

smembers myset

很明显能看出来是无序的。 

编辑

我们再做一个重复值测试

sadd myset a1 a5 a6

只添加了a6,其它的都没有变化,说明特性不变。

编辑

判断指定元素在指定集合中是否存在sismember

sismember key member

集合中存在返回1,不存在返回0。

sismember myset a2
sismember myset a7
smembers myset

编辑

获取指定集合的长度:scard key

scard myset

编辑

移除指定集合中一个或者多个元素:srem key member1

这里有一个特殊功能,就是如果删除的值不存在就忽略

srem myset a1 a2 a10
smembers myset

很明显,我写的删除三个,但是由于a10没有,故而删除2个。 

编辑

随机获取指定集合中的n个元素srandmember key [count]

key后面可以放count,如果不加count则返回来随机1个值,用在发牌上很合适。

srandmember key
srandmember key 1

编辑

返回差集sdiff key1 key2

我们再创建一个,用于做对照

sadd myset1 a1 a5 a6 a7 a8 a9
sdiff myset myset1

编辑差集,很明显myset-myset1剩余a3与a4。

返回交集sinter key1 key2

sinter  myset myset1

编辑

俩集合都有的a5和a6。 

返回并集sunion key1 key2

sunion myset myset1

俩合并,查看一下,相同的默认去重,其余的都有。 

编辑

到这里set集合就讲解完毕了。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。