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个月内不可修改。