一、redis键管理

1 键重命名

rename oldKey newkey //格式
rename oldKey newKey //若oldKey之前存在则被覆盖
set name james ;set name1 mike //数据初始化
renamenx name name1 //重命名失败,只有当name1不存在才能改名

2 返回随机键

randomkey //返回随机键

3 键过期

expire name:03 20 //键name:03 在10秒后过期
ttl name:03 //查看过期按秒到计时,当返回-2说明已删除
pttl name:03 //查看过期按毫秒到时计
set name:05 james //初始化数据
pexpire name:05 20000 //20000毫秒(20S)后过期
expire name:06 -2 //直接过期,和del一样

设置键在某个时间点过期 使用的是时间戳
expireat name:04 1516971599 //设置在2018/01/27 20:59:59过期
时间转时间戳:网址http://tool.chinaz.com/Tools/unixtime.aspx

hset user:01 name james //初始化数据
expire user:01 60 //设置60S后过期
ttl user:01 //查看过期剩余时间
persist user:01 //去掉过期
ttl user:1 //返回-1 可以永久查询不失效

注意:对于字符串重设值后,expire无效,
set name james
expire name 50
ttl name
set name james1 //此时expire取消
ttl name //返回-1, 长期有效

4. 键的迁移

把部分数据迁移到另一台redis服务器

1, move key db  //reids有16个库, 编号为0-15

set name james1;  move name 5 //迁移到第6个库

select 5 ;//数据库切换到第6个库, get name  可以取到james1

这种模式不建议在生产环境使用,在同一个reids里可以玩

2, dump key;

restore key ttl value//实现不同redis实例的键迁移,ttl=0代表没有过期时间

例子:在A服务器上 192.168.1.111

set name james;

dump name; //  得到"\x00\x05james\b\x001\x82;f\"DhJ"

在B服务器上:192.168.1.118

restore name 0 "\x00\x05james\b\x001\x82;f\"DhJ"

get name  //返回james

3,migrate指令迁移到其它实例redis,在1.111服务器上将test移到118

migrate

192.168.1.118

6379

test

0

1000

copy

replace

keys

指令

要迁移的目标IP

端口

迁移键值

目标库

超时时间

迁移后不删除原键

不管目标库是不存在test键都迁移成功

迁移多个键

5. 键的遍历

redis提供了两个命令来遍历所有的键

1,键全量遍历:

mset country china city bj name james  //设置3个字符串键值对

keys  * //返回所有的键, *匹配任意字符多个字符

keys *y //以结尾的键,

keys n*e //以n开头以e结尾,返回name

keys n?me  //  ?问号代表只匹配一个字符  返回name,全局匹配

keys n?m*   //返回name

keys [j,l]*  //返回以j l开头的所有键  keys [j]ames 全量匹配james

考虑到是单线程, 在生产环境不建议使用,如果键多可能会阻塞,如果键少,可以

2,渐进式遍历

mset  a a b b c c d d e e f f g g h h i i j j k k l l m m n n o o p p q q r r s s t t u u v v w w x x y y z z    //初始化26个字母键值对

字符串类型:

scan 0 match n* count 20 //匹配以n开头的键,取20条,第一次scan 0开始

第二次从游标10开始取20个以n开头的键,相当于一页一页的取,当最后返回0时,键被取完

注:渐进式遍历可有效地解决keys命令可能产生的阻塞问题
除scan字符串外:还有以下
SCAN 命令用于迭代当前数据库中的数据库键。
SSCAN 命令用于迭代集合键中的元素。
HSCAN 命令用于迭代哈希键中的键值对。
ZSCAN 命令用于迭代有序集合中的元素(包括元素成员和元素分值)。
用法和scan一样

二、redis数据库管理

select 0 //共16个库, 0 --15, select切换数据库
set name james
select 1
get name //隔离了,取不到,和mysql不同库一样

其中redis3.0以后的版本慢慢弱化了这个功能,如在redis cluster中只允许0数据库
原因:
1,redis单线程,如果用多个库,这些库使用同一个CPU,彼此会有影响
2,多数据库,调试与运维麻烦,若有一个慢查询,会影响其它库查询速度
3,来回切换,容易混乱

flushdb: 只清空当前数据库的键值对 dbsiz 0
flushall: 清空所有库的键值对 (这两个指令慎用!!!!)

转载于:https://www.cnblogs.com/leeSmall/p/8367745.html

Redis系列五:redis键管理和redis数据库管理相关推荐

  1. Redis系列(五):Redis的过期键删除策略

    Redis系列(五):Redis的过期键删除策略 - 申城异乡人 - 博客园 本篇博客是Redis系列的第5篇,主要讲解下Redis的过期键删除策略. 本系列的前4篇可以点击以下链接查看: Redis ...

  2. 深入剖析Redis系列(五) - Redis数据结构之字符串

    前言 字符串类型 是 Redis 最基础的数据结构.字符串类型 的值实际可以是 字符串(简单 和 复杂 的字符串,例如 JSON.XML).数字(整数.浮点数),甚至是 二进制(图片.音频.视频),但 ...

  3. Redis系列教程(三):如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题

    Java相关的面试都会问到缓存的问题:史上最全Redis面试49题(含答案):哨兵+复制+事务+集群+持久化等,除此之外还会问到缓存雪崩.缓存穿透.缓存预热.缓存更新.缓存降级等不常见的问题,但却是非 ...

  4. Redis系列教程(二):详解Redis的存储类型、集群架构、以及应用场景

    高并发架构系列 高并发架构系列:数据库主从同步的3种一致性方案实现,及优劣比较 高并发架构系列:Spring Cloud的核心成员.以及架构实现详细介绍 高并发架构系列:服务注册与发现的实现原理.及实 ...

  5. Redis系列五、redis的五种数据结构和相关指令之Set

    本节中将介绍Redis支持的主要数据结构中的set,以及相关的常用Redis命令. redis的五种数据结构和相关指令之set 集合set 集合(set)与列表类似,都是用来保存多个字符串,但集合与列 ...

  6. Redis系列之Ehcache、Memcached、Redis对比

    概述 面对海量.高并发请求时,为了实现秒级设置毫秒级响应,增加系统的吞吐量,故而需要考虑引入缓存系统.常见的开源的组件如下. Ehcache 官网 GitHub 特色: 够快:Ehcache发布历史长 ...

  7. redis系列五redis-cluste集群的搭建

    一 环境准备 三台虚拟机 centos7  安装6个redis的实例三个master 3个slave 192.168.0.30  安装7001 7002 端口 192.168.0.31  安装7003 ...

  8. Redis系列教程(五):Redis哨兵、复制、集群的设计原理,以及区别

    前一篇文章高并发架构系列:Redis为什么是单线程.及高并发快的3大原因详解谈了Redis高并发快的3个原因,本篇主要谈Redis的高可用,两篇合起来就可以把redis的高并发和高可用搞清楚了. 谈到 ...

  9. 深入剖析Redis系列(七) - Redis数据结构之列表

    前言 列表(list)类型是用来存储多个 有序 的 字符串.在 Redis 中,可以对列表的 两端 进行 插入(push)和 弹出(pop)操作,还可以获取 指定范围 的 元素列表.获取 指定索引下标 ...

最新文章

  1. 元数据驱动的微服务架构(上)
  2. python大众点评网应该涉及哪些参考文献及其出版社_python小练习(052):爬取大众点评网美食版块+数据库储存+大数据分析(二)...
  3. 【windows】dos命令查看某个文件夹下所有文件目录列表
  4. POJ1465 Multiple——Bfs+余数判重——Pku1465
  5. 分类评分函数 score function
  6. JZOJ 4910. 【NOIP2017模拟12.3】子串
  7. 使用HttpClient消费ASP.NET Web API服务
  8. 契税申报期限_税局正式公告!财产和行为税合并纳税申报!附税种申报要点
  9. 瑞星杀毒全面免费 请下载
  10. 【性能优化】PHP代码输出压缩后HTML
  11. web前端(2)——了解什么是前端,以及与后端的关系
  12. 选择要素选择集中的某个图层的要素
  13. 【资源共享】SPI开发指南
  14. Oracle数据库的学习
  15. 数学规划模型(五):多目标规划模型
  16. Jenkins自动化构建Gitee项目
  17. Android四大组件之Service
  18. 腾达和小云无线路由中继(WISP)解决
  19. 程序员月薪多少才不会焦虑
  20. 田老师书法工作室优秀学员获奖作品展(一)

热门文章

  1. 下述程序有什么问题?
  2. 操作系统:多处理器编程-- 蒋炎岩老师
  3. 数据为什么要可视化?如何可视化?
  4. Enterprise Library 2.0 -- Caching Application Block
  5. (一)神经网络入门之线性回归
  6. 构建之法之单元测试及设计流程
  7. RabbitMQ 一二事(4) - 路由模式介绍
  8. Windows锁定计算机C代码编程实现
  9. java.lang.Runtime
  10. PLSQL不能选择数据库问题