Redis拾遗
Posted fly-to-the-sky
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis拾遗相关的知识,希望对你有一定的参考价值。
键的管理:
- 键重命名:rename key newkey 重命名后原键的值会被覆盖 renamenx key newkey 只有newkey 不存在的时候才被覆盖(需注意当键值比较大会存在阻塞redis的可能)
- 随机返回一个键:randomkey
- 键过期:
- expire key seconds 键在seconds秒后过期
- expireat key timestramp 键在秒级时间戳timestrap后过期
- ttl key 查看键剩余过期时间
- ·pexpire key milliseconds: 键在milliseconds毫秒后过期
- pexpireat key milliseconds-timestamp键在毫秒级时间戳timestamp后过
期。 - persist key 将键的过期时间清除
- 对于字符串类型的键,执行set 命令会去掉过期时间,易忽略!
- Redis不支持二级数据结构(list hash)内部元素的过期功能
- 迁移键:
- move key db 将制定的键从源数据库移动到目标数据库(redis内部有多个数据库,默认用0号)
- dump+restore :
- dump key 在源Redis上,dump命令将键值序列化,采用RDB格式
- restore key ttl value 在目标redis上,restore命令将上面序列化的值进行复原,ttl代表过期时间,ttl=0代表没有过期时间
- migrate:将dump.restore.del单个命令组合,原子性。只需要在源redis上运行。migrate host port key|"" destination-db timeout [copy] [replace] [keys key [key
- 遍历键:
- keys pattern:类正则用法(不建议在生产环境用此命令,因为单线程缘故,会阻塞,可在从节点执行,或总键数比较少的情况下等)
- 渐进式遍历:scan cursor [match pattern] [count number] 解决阻塞问题, 但对新增的键可能扫描不到,这是开发时需要注意的。
- 数据库管理:
- 切换数据库:select dbIndex
- 删除数据库:flushdb/flushall
小功能大用处:
- 慢查询分析:慢查询日志功能,可配置时间阈值,慢查询日志最大条数,结合具体命令进行开发运维。
- redis-cli:-r:重复多少次该命令;-i:和-r一起使用,每隔几秒执行;-x:代表从标准输入读取数据作为redis-cli的最后一个参数eg: echo "world" | redis-cli -x set hello ;-a :密码;--scan/--pattern;--slave作为从节点;--rdb:生成rdb持久化文件;--pipe:管道批量发送命令;--bigkeys:采用scan命令对redis键进行采样,找到内存占用比较大的键值;--eval:执行lua脚本;--latency:检测网络延迟;--stat:查看重要统计信息;--raw/--no-raw:要求命令返回结果是否为原始格式;
- redis-server:--test-memory mb 检测系统是否能闻到分屏指定容量的内存给redis
- pipeline:节省网络开销,非原子
- 事务:将命令放到multi 和 exec之间,Redis不支持回滚。
- Bitmaps:按位操作的命令集,不在此赘述
- HyperLogLog:利用极小内存空间完成独立总数的统计
- 发布订阅:
- 发布消息:publish channel message
- 订阅消息:subscribe channel [channel ...]
- 取消订阅:unsubscribe [channel [channel ...]]
- 按照模式订阅和取消订阅:psubscribe pattern [pattern...]
punsubscribe [pattern [pattern ...]] - 查看活跃频道:pubsub channels [pattern]
- 查看频道订阅数:pubsub numsub [channel ...]
- 查看模式订阅说:pubsub numpat
- GEO:地理定位功能
以上是关于Redis拾遗的主要内容,如果未能解决你的问题,请参考以下文章