redis set list

  • Post author:
  • Post category:其他


List

list:

插入命令:lpush / rpush

查看list列表所有数据(-1 表示最后一个):lrange key 0 -1

查看列表长度(key 不存在则长度返回0 ): llen key

在这里插入图片描述

list长度

在这里插入图片描述

获取下表 为 0 的元素

在这里插入图片描述

修改下标为0的元素,改为haha

在这里插入图片描述

移除列表的第一个元素 或最后一个元素

lpop

在这里插入图片描述

rpop

在这里插入图片描述

在 列表key1中 元素v3前 插入元素ccc,在v3后插入元素ddd

在这里插入图片描述

尾删头插:rpoplpush list1 list2

在key1 尾删除一个元素,并把这个元素插入到 key2 的头部

在这里插入图片描述

Set集合:功能和list相似,只是去重了元素

添加和查看

在这里插入图片描述

在这里插入图片描述

集合是否包含元素 sismember key value

在这里插入图片描述

删除集合中的元素

在这里插入图片描述

随机弹出一个元素

在这里插入图片描述

随机弹出集合中两个元素,但是不删除原集合元素

在这里插入图片描述

将v2从集合 set1 移到 集合set2中

在这里插入图片描述

交集 sinter

并集 sunion

差集( set1全部元素且不包含set2元素 ): sdiff set1 set2

在这里插入图片描述

zset集合,也叫sort set: 在set基础上加了排序功能

增加 两条数据 并按着score 升序 或降序

在这里插入图片描述

降序

在这里插入图片描述

返回指定score区间的元素数量

在这里插入图片描述

返回指定元素的score

在这里插入图片描述

指定元素的score + 100 或 -100

在这里插入图片描述

升序/降序score 获取指定元素的排名

在这里插入图片描述

移除指定元素 zrem key value

在这里插入图片描述

zset 适合做延时队列,超时未支付删除该订单

例如:时间戳作为score,订单号为value

zadd dingdanset 18907234 D1001

zadd dingdanset 18907235 D1002

轮询获取Zset集合,判断时间戳是否超时
伪代码
while(true){
	Thread.sleep(500)
	//获取set 集合并按着时间戳升序排序
	set<object> sets = redis.get(key)
	//只取第一个
	int score  = sets[0].get("score");
	if( 当前时间戳 >= score ){
		//做未支付的逻辑
		...
		//且移除该订单
		zrem(dingdanset,D1001);
	}
}



版权声明:本文为weixin_43275578原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。