基础环境
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
查询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
移除指定集合中一个或者多个元素:srem key member1
这里有一个特殊功能,就是如果删除的值不存在就忽略
srem myset a1 a2 a10 smembers myset
很明显,我写的删除三个,但是由于a10没有,故而删除2个。
随机获取指定集合中的n个元素srandmember key [count]
key后面可以放count,如果不加count则返回来随机1个值,用在发牌上很合适。
返回差集sdiff key1 key2
我们再创建一个,用于做对照
差集,很明显myset-myset1剩余a3与a4。
返回交集sinter key1 key2
俩集合都有的a5和a6。
返回并集sunion key1 key2
sunion myset myset1
俩合并,查看一下,相同的默认去重,其余的都有。
到这里set集合就讲解完毕了。