文章目录

  • 键管理
    • 单个键管理
  • 迁移键
  • 遍历键
    • 全量遍历键
    • 渐进式遍历
  • 数据库

键管理

单个键管理
  1. 键重命名
    rename key newkey

     127.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 之前会提示报错。

  1. 随机返回一个键
    randomkey

     127.0.0.1:6379> randomkey"boy"
    
  2. 键过期
    expire key seconds :键在seconds 秒后过期
    expireat key timestamp :键在秒级时间戳timestamp 后过期
    ttl key 查看键剩余过期时间
    pttl key 精确到毫秒

毫秒级键过期
pexpire key milliseconds 单位为毫秒

persist 命令可以将键的过期时间清除

persist key

对于字符串类型键,执行set 命令会去掉过期时间,这一点在开发中很容易被忽视

迁移键

提供三种迁移方式

  1. move

    move key db
    

即把key 移动到另外一个数据库,通常在redis内部进行,生成环境不建议使用,了解即可。

  1. dump+restore (非原子操作)

    dump key
    dump key ttl value

这种方式可以实现在不同实例之间进行数据迁移的功能,整个迁移的过程分两步:
1)在源redis 上,dump 命令会将键值序列化,格式采用的是RDB 格式。
2)在目标redis 上,restore命令将上面的序列化的值进行复原。ttl 为过期时间,ttl=0 代表没有过期时间

  1. 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 的理解与使用- 键管理相关推荐

  1. Linux内核深入理解定时器和时间管理(5):clockevents 框架

    Linux内核深入理解定时器和时间管理 clockevents 框架 rtoax 2021年3月 在原文基础上,增加5.10.13内核源码相关内容. 1. Introduction to the cl ...

  2. Linux内核深入理解定时器和时间管理(4):定时器 timer

    Linux内核深入理解定时器和时间管理 定时器 timer rtoax 2021年3月 在原文基础上,增加5.10.13内核源码相关内容. 1. Timers This is fourth part ...

  3. Linux内核深入理解定时器和时间管理(3):tick 广播 框架 和 dyntick

    Linux内核深入理解定时器和时间管理 tick 广播 框架 和 dyntick rtoax 2021年3月 在原文基础上,增加5.10.13内核源码相关内容. 结构体 --------------- ...

  4. Linux内核深入理解定时器和时间管理(2):clocksource 框架

    Linux内核深入理解定时器和时间管理 clocksource 框架 rtoax 2021年3月 在原文基础上,增加5.10.13内核源码相关内容. 全局部变量 ------------------- ...

  5. Linux内核深入理解定时器和时间管理(1):硬件时钟和jiffies

    Linux内核深入理解定时器和时间管理 硬件时钟和jiffies rtoax 2021年3月 在原文基础上,增加5.10.13内核源码相关内容. 全局部变量 --------------------- ...

  6. 理解模块化和依赖管理(一)

    理解模块化和依赖管理: 应用一般都会依赖外部库(jQuery和AngularJs),这些库应该使用包管理器处理和更新,而不是手动下载. 应用本身也可以分解成为多个相互交互的小部分,学习封装代码的技能, ...

  7. 第二章 API的理解和使用

    2.1.1全局命令 Key * 查看所有键,(慎用,会把所有键都遍历一次并列出) Dbsize 查看键总数,不会遍历所有键,只是从内置函数中读取一个数 Exists [key] 检查键是否存在 Del ...

  8. Linux内核深入理解定时器和时间管理(7):相关的系统调用

    Linux内核深入理解定时器和时间管理 相关的系统调用 rtoax 2021年3月 在原文基础上,增加5.10.13内核源码相关内容. 结构体 ---------------------------- ...

  9. MySQL数据库进阶(API的理解、Python对MySQL的接口)

    文章目录 一.API的理解 二.Python对MySQL的API 本篇文章主要是关于Python对MySQL的接口API的内容,简单来说就是在Python中调用MySQL语句来执行 一.API的理解 ...

最新文章

  1. 发现价值(1)-无限的网络资源
  2. dubbo-admin管理控制台安装
  3. 高难度的c语言程序例子,高难度脑筋急转弯分享
  4. python序列类型-Python(第八课,序列类型)
  5. Codeforces Beta Round #1--C题(多边形求最小面积)
  6. 用批处理修复 win10 无法升级的问题
  7. 选择排序:简单选择排序
  8. python select實現非阻塞socket
  9. python输入字符串str_python字符串String模块
  10. 沫沫金::struts下载文档[解决方案]
  11. 【Google Chrome】reCAPTCHA did not get loaded.
  12. mysql 索引的模糊查询_MYSQL语法(模糊查询,视图,索引)
  13. Android-屏幕截图功能实现
  14. 2022 Java面试题道通科技
  15. 近8年的测试人员跟你细谈如何从一个测试小白到大佬的转变
  16. MySQL深度分页的问题及优化方案:千万级数据量如何快速分页
  17. Python里的@如何使用
  18. 非项目活动的时间怎么跟踪?
  19. Discuz! - 6.1 ~ 7.0 - 安装SupeSite后导致安全漏洞
  20. Hadoop+Spark 大数据集群日常1 (There are 0 datanode(s) running报错 处理)

热门文章

  1. Maya offline document
  2. (最新整理)国内网页设计网站网址大全(转)
  3. 基因编辑最新研究进展(2022年3月)
  4. 微信公众平台开发--表情符号
  5. Excel无法打开文件新建 XLSX 工作表.xlsx,因为文件格式或文件扩展名无效。请确定文件未损坏解决办法【笔记】
  6. 方法调用机制内存分析★
  7. 一个人一个微博、一个App一个故事:通过微博草根账号做英语学习App的“爱卡微口语”获晨脉创投天使投资
  8. 怎样给公司定义一份完美的maven parent pom 文件
  9. PowerDesigner导出PDM和rtf文件
  10. 可怕的KCFErrordomainCFNetWork 303