redis -- key
1.删
del key [key ... ]
返回值:影响值
2.改
rename key newkey
当key和newkey相同或者key不存在时,返回一个错误
当newkey已经存在时,RENAME命令将覆盖旧值。
返回值:
renamenx key newkey
当且仅当newkey不存在时,将key改为newkey。
当key和newkey相同或者key不存在时,返回一个错误
move key db:
把key移动到指定db
如果两个数据库key有重名的,移动后,覆盖旧值
返回值:1,0
select 0 #选择0数据库
set name xiaomei
move name 1
exists name
返回0 ,说明name已经移动到数据库1,
expire key seconds :
设定key的生存时间,key不存在则报错
persist key:
移除给key设定的生存时间。
返回值:1,0
3.查
keys pattern :查看符合模式的key
keys * ,key h?llo , key h*lo, key h[ae]llo
randomkey:数据库随机返回
如果没有返回nil
ttl key:查看key的剩余时间
set name xiaomei
expire name 30
ttl name
exists key:查看是否存在
返回值:
1或者0
type key
返回值:
知识点1:
SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC | DESC] [ALPHA] [STORE destination]
sort key :根据value进行排序
sort key alpha :根据字母排序进行排序
sort key offset count [asc||desc] :从第offset开始,升降序取count个
使用外部key进行排序
有时候你会希望使用外部的key作为权重来比较元素,代替默认的对比方法。
假设现在有用户(user)数据如下:
id name level 1 admin 9999 2 huangz 10 59230 jack 3 222 hacker 9999
# 先将要使用的数据加入到数据库中# adminredis> LPUSH user_id 1 (integer) 1 redis> SET user_name_1 admin OK redis> SET user_level_1 9999 OK# huangzredis> LPUSH user_id 2 (integer) 2 redis> SET user_name_2 huangz OK redis> SET user_level_2 10 OK# jackredis> LPUSH user_id 59230 (integer) 3 redis> SET user_name_59230 jack OK redis> SET user_level_59230 3 OK# hackerredis> LPUSH user_id 222 (integer) 4 redis> SET user_name_222 hacker OK redis> SET user_level_222 9999 OK
redis> SORT user_id BY user_level_* DESC 1) "222" # hacker 2) "1" # admin 3) "2" # huangz 4) "59230" # jack
redis> SORT user_id BY user_level_* DESC GET user_name_* 1) "hacker" 2) "admin" 3) "huangz" 4) "jack"
# 先添加一些测试数据redis> SET user_password_222 "hey,im in" OK redis> SET user_password_1 "a_long_long_password" OK redis> SET user_password_2 "nobodyknows" OK redis> SET user_password_59230 "jack201022" OK# 获取name和passwordredis> SORT user_id BY user_level_* DESC GET user_name_* GET user_password_* 1) "hacker" # 用户名 2) "hey,im in" # 密码 3) "jack" 4) "jack201022" 5) "huangz" 6) "nobodyknows" 7) "admin" 8) "a_long_long_password"
get # 可列出元素在列表中的id 就是我们lpush user_id 3 这个3
如果只想获取对象而不排序,可以by 一个不存在的字段,这样这个字段就不起排序作用了,只是把所有的对象列出来。
将排序的结果保存起来,可以给STORE选项指定一个key作为参数,排序结果将以列表的形式被保存到这个key上。(若指定key已存在,则覆盖。)
redis> SORT user_id BY user_level_* GET # GET user_name_* GET user_password_* STORE user_info_sorted_by_level # 排序 (integer) 12 # 显示有12条结果被保存了redis> LRANGE user_info_sorted_by_level 0 11 # 查看排序结果 1) "59230" 2) "jack" 3) "jack201022" 4) "2" 5) "huangz" 6) "nobodyknows" 7) "222" 8) "hacker" 9) "hey,im in" 10) "1" 11) "admin" 12) "a_long_long_password"
将结果存成一个list
知识点2:
一个有趣的用法是将SORT结果保存,用EXPIRE为结果集设置生存时间,这样结果集就成了SORT操作的一个缓存。
这样就不必频繁地调用SORT操作了,只有当结果集过期时,才需要再调用一次SORT操作。
有时候为了正确实现这一用法,你可能需要加锁以避免多个客户端同时进行缓存重建(也就是多个客户端,同一时间进行SORT操作,并保存为结果集),具体参见SETNX命令。
redis -- key相关推荐
- Spring Boot 监听 Redis Key 失效事件实现定时任务
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:彭超 https://antoniopeng.com 业务场 ...
- 因 Redis Key 命令不规范,导致熬了一个通宵才把Key删完了!
来源:http://dwz.date/cmSG 前言 由于有一条业务线不理想,高层决定下架业务.对于我们技术团队而言,其对应的所有服务器资源和其他相关资源都要释放.释放了8台应用服务器: 1台es服务 ...
- redis 能不能监听特定的key失效_php监听redis key失效触发回调事件
订单超时.活动过期解决方案:php监听redis key失效触发回调事件 Redis 的 2.8.0 版本之后可用,键空间消息(Redis Keyspace Notifications),配合 2.0 ...
- 17 redis -key设计原则
书签系统 create table book ( bookid int, title char(20) )engine myisam charset utf8;insert into book val ...
- springboot listener_Springboot 监听redis key的过期事件
项目中常常会碰到这样的需求,用户下订单后,30分钟未完成自动取消订单的功能. 有人说这个简单呀,写个定时任务就搞定了.除了定时任务之外,难道就没有其他的方法来实现吗?有--Redis 的键空间通知事件 ...
- redis key命名规范_公司内部 Redis 使用规范
前言 在业务中,会经常使用 Redis 作为后端缓存.存储.如果结构规划不合理.命令使用不规范,会造成系统性能达到瓶颈.活动高峰系统可用性下降,也会增大运维难度.为了避免出现因 Redis 使用不当, ...
- php 监听redis,php监听redis key失效触发回调事件_后端开发
php中使用fsockopen实现异步请求(代码示例)_后端开发 php执行一段程序,有可能几毫秒就执行完毕,也有可能耗时较长.例如,用户下单这个事件,如果调用了些第三方服务进行发邮件.短信.推送等通 ...
- Redis入门——3.Redis key的设计技巧
Redis key的设计技巧 一,key设计原则 把表名转换为key前缀, 比如: tag: 第二段放置用于区分key的字段–对应mysql中的主键的列名 第三段放置主键值 第三段写列名 二,案例 用 ...
- Redis key前缀的设计与使用
阅读目录 采用模板方法模式进行设计前缀空间 RedisPrefixKey 接口 RedisBasePrefixKey 抽象类 UserKey 实现类(自定义) 改造RedisUtil工具类的方法 具体 ...
- php 监听redis,php监听redis key失效触发回调事件
订单超时.活动过期解决方案:php监听redis key失效触发回调事件 Redis 的 2.8.0 版本之后可用,键空间消息(Redis Keyspace Notifications),配合 2.0 ...
最新文章
- 作为一个程序员,数学对你到底有多重要(转)
- fiddler 在火狐(firefox)下无效的问题 ——Fiddler监听Firefox、Chrome中的http请求
- JavaScript cookie
- 线程同步之互斥量加锁解锁 死锁
- C++工作笔记-结构体与类的进一步探究(在C++中的结构体,非C语言结构体)
- Flink AggOperatorWholeWin 全窗口聚合函数
- ext拖动gridpanel的列组件消失_未来光伏组件市场格局:182mm市场占有率65%、210占5%、166占20%...
- Google广告优化与工具
- python获取音频音量大小_如何在python中规范化音频文件的音量:当前可用的任何包?...
- Mybatis框架|Mybatis下载步骤
- php++redius,【答疑】edius中快进播放的快捷键是什么啊? - 羽兔网问答
- 如何用photoshop快速换脸
- Android APP漏洞自动化静态扫描检测工具-Qark
- jquery对cookie进行读取、写入和删除
- Caused by: java.sql.SQLException: connection holder is null
- 用python爬取网易云评论最多的歌_巧用Python爬取网易云音乐歌曲全部评论
- 京冀101家饭店跻身北京2022年冬奥会官方接待签约名单
- 比赛即实战!中国软件杯发布全新产业创新赛项,校企可联合参赛
- 【Tableau 设计提示 6.0】Tableau有关设计地图提示
- java实现顺时针螺旋填入
热门文章
- 计算机搜索栏隐藏,win7系统电脑桌面搜索栏隐藏/关闭的详细技巧
- vue 多页面打包配置
- c语言中倒金字塔数字图形怎么,C语言倒金字塔编程.ppt
- 【知识点】(五)多元函数微积分学
- 09 Controls相机控制器
- freeswitch 电话拨通听不到对方声音
- web调用IC卡读卡器开发第八章--DES和3DES加解密
- SQL Server 2008连载之数据类型
- android适配器SimpleAdapter实现效果
- 已解决: newff()转为jar 调用报错:Layer sizes is not a row vector of positive integers