API 的理解与使用- 键管理
文章目录
- 键管理
- 单个键管理
- 迁移键
- 遍历键
- 全量遍历键
- 渐进式遍历
- 数据库
键管理
单个键管理
键重命名
rename key newkey127.0.0.1:6379> set python jedisOK127.0.0.1:6379> rename python javaOK127.0.0.1:6379> get python(nil)127.0.0.1:6379> get java"jedis"
如果在rename 之前,键python 已经存在,那么它的值也将被覆盖
为了防止强行rename,redis 提供了renamenx 命令,确保只有newkey 不存在时才被覆盖,返回结果如果是0,则表示没有完成重命名
注意两点:
1)由于重命名键期间会执行del 命令删除旧的键,如果键对应的值比较大。会存在阻塞redis 的可能性
2)如果rename 和renamenx 中的key 和newkey 如果是相同的,在redis 3.2 和之前会有不同,3.2 之前会提示报错。
随机返回一个键
randomkey127.0.0.1:6379> randomkey"boy"
键过期
expire key seconds :键在seconds 秒后过期
expireat key timestamp :键在秒级时间戳timestamp 后过期
ttl key 查看键剩余过期时间
pttl key 精确到毫秒
毫秒级键过期
pexpire key milliseconds 单位为毫秒
persist 命令可以将键的过期时间清除
persist key
对于字符串类型键,执行set 命令会去掉过期时间,这一点在开发中很容易被忽视
迁移键
提供三种迁移方式
move
move key db
即把key 移动到另外一个数据库,通常在redis内部进行,生成环境不建议使用,了解即可。
dump+restore (非原子操作)
dump key
dump key ttl value
这种方式可以实现在不同实例之间进行数据迁移的功能,整个迁移的过程分两步:
1)在源redis 上,dump 命令会将键值序列化,格式采用的是RDB 格式。
2)在目标redis 上,restore命令将上面的序列化的值进行复原。ttl 为过期时间,ttl=0 代表没有过期时间
- migrate
migrate host port key|“” destination-db timeout copy replace key1 key2 …key
host:目标redis IPport:目标端口key|"" :redis 3.06版本之前migrate只支持迁移一个键,如果是迁移多个键此处填""destination-db: 目的数据库索引号timeout: 迁移的超时时间,单位毫秒copy:如果添加此选项,迁移后并删除源键replace: 如果选择此选项,migrate 不管目标redis 是否存在该键都会正常迁移进行数据覆盖key1...key:迁移的键127.0.0.1:6379> migrate 127.0.0.16380 "" 0 5000 key1 key2 key3
遍历键
redis 提供两个命令遍历键,分别是keys 和scan
全量遍历键
keys pattern 支持正则
如果键个数比较多,容易造成阻塞,生成环境一般禁用
渐进式遍历
scan cursor [match pattern] [count number]
cursor 是一个游标,第一次遍历从0开始,每次scan 遍历完都会返回当前游标的值
match 可选参数,做模式匹配,类似keys的匹配
count 可选参数。默认10,每次遍历的个数
scan 并不能保证遍历的完整性,当scan 过程中,如果键发生变化,可能导致遍历不到。
数据库
切换数据库
redis 默认16个数据库,用编号来区分0-15,默认使用0号数据库。
select dbindex
清除数据库
flushall 清除所有数据库
flushdb 清除当前数据库
!!!慎用
API 的理解与使用- 键管理相关推荐
- Linux内核深入理解定时器和时间管理(5):clockevents 框架
Linux内核深入理解定时器和时间管理 clockevents 框架 rtoax 2021年3月 在原文基础上,增加5.10.13内核源码相关内容. 1. Introduction to the cl ...
- Linux内核深入理解定时器和时间管理(4):定时器 timer
Linux内核深入理解定时器和时间管理 定时器 timer rtoax 2021年3月 在原文基础上,增加5.10.13内核源码相关内容. 1. Timers This is fourth part ...
- Linux内核深入理解定时器和时间管理(3):tick 广播 框架 和 dyntick
Linux内核深入理解定时器和时间管理 tick 广播 框架 和 dyntick rtoax 2021年3月 在原文基础上,增加5.10.13内核源码相关内容. 结构体 --------------- ...
- Linux内核深入理解定时器和时间管理(2):clocksource 框架
Linux内核深入理解定时器和时间管理 clocksource 框架 rtoax 2021年3月 在原文基础上,增加5.10.13内核源码相关内容. 全局部变量 ------------------- ...
- Linux内核深入理解定时器和时间管理(1):硬件时钟和jiffies
Linux内核深入理解定时器和时间管理 硬件时钟和jiffies rtoax 2021年3月 在原文基础上,增加5.10.13内核源码相关内容. 全局部变量 --------------------- ...
- 理解模块化和依赖管理(一)
理解模块化和依赖管理: 应用一般都会依赖外部库(jQuery和AngularJs),这些库应该使用包管理器处理和更新,而不是手动下载. 应用本身也可以分解成为多个相互交互的小部分,学习封装代码的技能, ...
- 第二章 API的理解和使用
2.1.1全局命令 Key * 查看所有键,(慎用,会把所有键都遍历一次并列出) Dbsize 查看键总数,不会遍历所有键,只是从内置函数中读取一个数 Exists [key] 检查键是否存在 Del ...
- Linux内核深入理解定时器和时间管理(7):相关的系统调用
Linux内核深入理解定时器和时间管理 相关的系统调用 rtoax 2021年3月 在原文基础上,增加5.10.13内核源码相关内容. 结构体 ---------------------------- ...
- MySQL数据库进阶(API的理解、Python对MySQL的接口)
文章目录 一.API的理解 二.Python对MySQL的API 本篇文章主要是关于Python对MySQL的接口API的内容,简单来说就是在Python中调用MySQL语句来执行 一.API的理解 ...
最新文章
- 发现价值(1)-无限的网络资源
- dubbo-admin管理控制台安装
- 高难度的c语言程序例子,高难度脑筋急转弯分享
- python序列类型-Python(第八课,序列类型)
- Codeforces Beta Round #1--C题(多边形求最小面积)
- 用批处理修复 win10 无法升级的问题
- 选择排序:简单选择排序
- python select實現非阻塞socket
- python输入字符串str_python字符串String模块
- 沫沫金::struts下载文档[解决方案]
- 【Google Chrome】reCAPTCHA did not get loaded.
- mysql 索引的模糊查询_MYSQL语法(模糊查询,视图,索引)
- Android-屏幕截图功能实现
- 2022 Java面试题道通科技
- 近8年的测试人员跟你细谈如何从一个测试小白到大佬的转变
- MySQL深度分页的问题及优化方案:千万级数据量如何快速分页
- Python里的@如何使用
- 非项目活动的时间怎么跟踪?
- Discuz! - 6.1 ~ 7.0 - 安装SupeSite后导致安全漏洞
- Hadoop+Spark 大数据集群日常1 (There are 0 datanode(s) running报错 处理)
热门文章
- Maya offline document
- (最新整理)国内网页设计网站网址大全(转)
- 基因编辑最新研究进展(2022年3月)
- 微信公众平台开发--表情符号
- Excel无法打开文件新建 XLSX 工作表.xlsx,因为文件格式或文件扩展名无效。请确定文件未损坏解决办法【笔记】
- 方法调用机制内存分析★
- 一个人一个微博、一个App一个故事:通过微博草根账号做英语学习App的“爱卡微口语”获晨脉创投天使投资
- 怎样给公司定义一份完美的maven parent pom 文件
- PowerDesigner导出PDM和rtf文件
- 可怕的KCFErrordomainCFNetWork 303