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

2022-11-30 19:46:19 浏览数 (1)

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 

示例

代码语言:javascript复制
lpush mylist a1
lpush mylist a2

查看list列表值范围

lrange key startIndex endIndex

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

代码语言:javascript复制
lrange mylist 0 100
lrange mylist 0 -1

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

rpush key value

代码语言:javascript复制
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相同的元素。

代码语言:javascript复制
lrem mylist 0 a1

lrange mylist 0 -1

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

Redis集合类型——set

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

添加set

sadd key value 

代码语言:javascript复制
sadd myset a1 a5 a6

查询set

smembers key

代码语言:javascript复制
smembers myset

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

我们再做一个重复值测试

代码语言:javascript复制
sadd myset a1 a5 a6

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

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

sismember key member

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

代码语言:javascript复制
sismember myset a2
sismember myset a7
smembers myset

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

代码语言:javascript复制
scard myset

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

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

代码语言:javascript复制
srem myset a1 a2 a10
smembers myset

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

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

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

代码语言:javascript复制
srandmember key
srandmember key 1

返回差集sdiff key1 key2

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

代码语言:javascript复制
sadd myset1 a1 a5 a6 a7 a8 a9
sdiff myset myset1

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

返回交集sinter key1 key2

代码语言:javascript复制
sinter  myset myset1

俩集合都有的a5和a6。 

返回并集sunion key1 key2

代码语言:javascript复制
sunion myset myset1

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

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

0 人点赞