一、集群

查看Redis集群有多少个库

  1. 192.168.200.100:7001> config get databases
  2. 1) "databases"
  3. 2) "16"

连接:

  1. [root@master src]# ./redis-cli -h 192.168.200.102 -c -p 7008

打印集群信息,查看集群状态:cluster info

列出集群当前已知的所有节点,以及这些节点的相关信息:cluster nodes

添加节点:将ip和port所指定的节点添加到集群中:cluster meet ip port

从集群中移除指定的节点:cluster forget <node_id>

实例:

  1. 127.0.0.1:7000> CLUSTER FORGET 68cc9ca44041627308b176841da689b56b599a42
  2. OK --只会在7000节点FORGET 1分钟不执行其他操作,节点会自动回到集群

主从切换:cluster failover [force | takeover]在slave上执行,主从切换

cluster saveconfig 将节点的配置文件保存到硬盘里面

cluster flushslots移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点

cluster keyslot <key> 计算键key应该被放在在哪个槽上

cluster countkeysinslot <slot>返回槽slot目前包含的键值对数量

二、键管理

1、键重命名

  1. rename oldkey newkey
  2. renamenx name name1 //重命名失败,只有当name1不存在才能改名

2、返回随机键

randomkey

3、键过期

  1. expire keytest 20 //键test在20秒后过期
  2. ttl keytest //查看过期按秒倒计时,当返回值为-2时说明该键已经被删除
  3. pttl keytest //查看过期按毫秒倒计时
  4. pexpire keytest 20000 //20000毫秒后过期
  5. expire keytest -2 //直接过期,和del一样

设置键在某个时间点过期 使用的是时间戳

expireat name:04 1516971599 //设置在2018/01/27 20:59:59过期
时间转时间戳:网址http://tool.chinaz.com/Tools/unixtime.aspx

persist keytest  //去掉过期

ttl keytest //返回-1 可以永久查询不失效

注意:对于字符串重设值后,expire无效

  1. set name james
  2. expire name 50
  3. ttl name
  4. set name james1 //此时expire取消
  5. ttl name //返回-1, 长期有效

4、键的迁移

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

  1. 192.168.200.100:7001> config get databases
  2. 1) "databases"
  3. 2) "16"

可以看到Redis有16个库,编号为 0-15

1、key 的迁移

  1. move keytest 5 //迁移到第6个库
  2.  
  3. select 5 //数据库切换到第6个库
  4.  
  5. 上面这种模式不建议在生产环境使用,在同一个redis里可以玩

2、dump key

  1. restore key ttl 0 //实现不同的Redis实例的键迁移,ttl = 0代表没有过去时间
  2. dump name; // 得到"\x00\x05james\b\x001\x82;f\"DhJ"
  3. B服务器上:192.168.1.118
  4. restore name 0 "\x00\x05james\b\x001\x82;f\"DhJ"
  5. get name //返回james

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

5、键的遍历

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

a、键全量遍历

  1. mset country china city bj name james //设置3个字符串键值对
  2. keys * //返回所有的键, *匹配任意字符多个字符
  3. keys *y //以结尾的键,
  4. keys n*e //以n开头以e结尾,返回name
  5. keys n?me // ?问号代表只匹配一个字符 返回name,全局匹配
  6. keys n?m* //返回name
  7. keys [j,l]* //返回以j l开头的所有键 keys [j]ames 全量匹配james
  8. 考虑到是单线程, 在生产环境不建议使用,如果键多可能会阻塞,如果键少,可以

b、渐进式遍历

  1. 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个字母键值对
  2. 字符串类型:
  3. scan 0 match n* count 20 //匹配以n开头的键,取20条,第一次scan 0开始

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

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

6、Redis数据库管理

  1. select 0 //共16个库, 0 --15, select切换数据库
  2. set name james
  3. select 1
  4. get name //隔离了,取不到,和mysql不同库一样
  5. 其中redis3.0以后的版本慢慢弱化了这个功能,如在redis cluster中只允许0数据库
  6. 原因:
  7. 1redis单线程,如果用多个库,这些库使用同一个CPU,彼此会有影响
  8. 2,多数据库,调试与运维麻烦,若有一个慢查询,会影响其它库查询速度
  9. 3,来回切换,容易混乱
  10. flushdb: 只清空当前数据库的键值对 dbsiz 0
  11. flushall: 清空所有库的键值对 (这两个指令慎用!!!!

Redis学习之路(三)常用命令总结的更多相关文章

  1. Redis——学习之路三(初识redis config配置)

    我们先看看config 默认情况下系统是怎么配置的.在命令行中输入 config get *(如图) 默认情况下有61配置信息,每一个命令占两行,第一行为配置名称信息,第二行为配置的具体信息.     ...

  2. Redis学习(6)-常用命令

    List命令 value值为LinkedList类型. 使用环境: 1,做大数据集合的增删. 2,任务队列.用户任务队列 链表查看 lrange key start end:获取链表从start到en ...

  3. Redis 学习之路 (009) - Redis-cli命令最新总结

    资料来源: http://redisdoc.com/ http://redis.io/commands 连接操作相关的命令 默认直接连接  远程连接-h 192.168.1.20 -p 6379 pi ...

  4. Redis——学习之路四(初识主从配置)

    首先我们配置一台master服务器,两台slave服务器.master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器. 两台slave服务 ...

  5. Redis——学习之路二(初识redis服务器命令)

    上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息   s ...

  6. redis 学习(二)-- 通用命令

    redis 学习(二)-- 通用命令 1. keys pattern 含义:查找所有符合给定模式(pattern)的key 命令 含义 keys * 遍历所有 key keys he[h-l]* 遍历 ...

  7. 学习之路三十九:新手学习 - Windows API

    来到了新公司,一开始就要做个程序去获取另外一个程序里的数据,哇,挑战性很大. 经过两周的学习,终于搞定,主要还是对Windows API有了更多的了解. 文中所有的消息常量,API,结构体都整理出来了 ...

  8. Redis学习之路(000)- 目录

    本文是博主学习整理网上大神的文件以及自学的心得. Redis学习之路(000)- 目录 Redis学习之路(001)- Redis介绍以及安装(Linux) Redis学习之路(002)- Ubunt ...

  9. docker学习笔记二:常用命令

    docker学习笔记二:常用命令 查看docker常用命令 docker --help 返回结果如下: 其中常用的命令如下: 1.image相关操作 展示所有的image: 删除image: rmi ...

  10. Hexo系列(三) 常用命令详解

    Hexo 框架可以帮助我们快速创建一个属于自己的博客网站,熟悉 Hexo 框架提供的命令有利于我们管理博客 1.hexo init hexo init 命令用于初始化本地文件夹为网站的根目录 $ he ...

随机推荐

  1. 第11.16节 Python正则元字符“()”(小括号)与组(group)匹配模式

    一. 什么是组 关于组匹配模式,Python官网上说得比较简单,也没有这个名词,只有组这个名词,老猿查了比较多的资料和做了相关测试之后才理解. 组匹配模式,就是在匹配的正则表达式中使用小括号" ...

  2. PyQt(Python+Qt)学习随笔:QAbstractItemView的showDropIndicator属性

    老猿Python博文目录 老猿Python博客地址 概述 QAbstractItemView的showDropIndicator属性用于控制在拖拽过程中显示当前拖拽到的位置,当释放时则在当前拖拽位置覆 ...

  3. C# operator 关键字的用法

    operator 只要是运算符都能重载 operator 关键字的主要作用是用来重载运算符的,还可以用于类或结构中类型的自定义转换. 下面看个例子 class Feige { //定义两个全局变量 i ...

  4. css改变svg的颜色

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. KafkaMirrorMaker 的不足以及一些改进

    背景 某系统使用 Kafka 存储实时的行情数据,为了保证数据的实时性,需要在多地机房维护多个 Kafka 集群,并将行情数据同步到这些集群上. 一个常用的方案就是官方提供的 KafkaMirrorM ...

  6. dataframe,list,numpy之间的互相转换

    dataframe,numpy,list之间的互相转换 由于目前学校要做一些数据分析处理的作业有要用到dataframe,list,numpy之间的转化,所以在此总结一下这些用法. dataframe ...

  7. 服务器标配 SSH 协议,你了解多少?

    年初,新冠肺炎疫情的出现,全国数千万名员工在家远程办公,使用个人设备通过家庭网络访问公司资料.因此,IT 安全团队面临了众多新挑战:如何实施更加安全的身份验证方案,以确保只有授权人员和设备才能访问公司 ...

  8. Loading class `com.mysql.jdbc.Driver'. This is deprecated警告处理

    com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的区别 mysql客户端6以后,数据库驱动com.mysql.jdbc.Driver'已经被弃用了.应当 ...

  9. react第十一单元(受控组件和非受控组件-实现类似于vue双向绑定的功能)

    第十一单元(受控组件和非受控组件-实现类似于vue双向绑定的功能) #课程目标 理解因为react的单向数据流 理解表单组件会因为react数据流变的不好维护 理解受控组件与非受控组件的实质区别 理解 ...

  10. post 和php://input

    $_POST['paramName'] 获取通过表单(multipart/form-data)提交的数据.但有时客户端会直接将请求数据以字符串的形式都放到 body 里传递过来,那么服务端就需要使用  ...