当前位置: 首页 > article >正文

redis set list

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);
	}
}

http://www.kler.cn/a/9391.html

相关文章:

  • HBase使用create创建表时报错ERROR: KeeperErrorCode = NoNode for /hbase/master
  • 前端框架大比拼:React.js, Vue.js 及 Angular 的优势与适用场景探讨
  • 一文简单了解Android中的input流程
  • MySQL数据库:SQL语言入门 【下】(学习笔记)
  • 时间管理的三个痛点
  • Blender进阶:图像纹理节点和映射节点
  • 一天吃透计算机网络八股文
  • 初识设计模式 - 命令模式
  • 【ROS2指南-12】编写一个简单的发布者和订阅者
  • IDEA2020.1 Failed to execute goal org.codehaus.mojo:exec-maven-plugin
  • Sentry安装使用(最全最细)
  • 你是真的“C”——宏与函数的英雄本色
  • fetch下载js文件,js内容浏览器能不执行吗
  • 4月11日作业修订
  • 【Linux】基础IO_文件操作
  • Docker 部署Jira8.1.0
  • 安装torch\torch-geometric
  • Raft协议
  • MFC - 控件的消息和控件的事件(命令)有什么区别?
  • leetcode单词的个数
  • 憨批的语义分割重制版11——Keras 搭建自己的HRNetV2语义分割平台
  • stm32 esp01s Qt 巴法云平台控制小灯
  • C++模板基础(六)
  • 故障定级和定责
  • 处理机调度与死锁习题
  • 蓝桥杯第十四届省赛完整题解 C/C++ B组