Redis学习之路(三)常用命令总结
一、集群
查看Redis集群有多少个库
192.168.200.100:7001> config get databases
1) "databases"
2) "16"
连接:
[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>
实例:
127.0.0.1:7000> CLUSTER FORGET 68cc9ca44041627308b176841da689b56b599a42
OK --只会在7000节点FORGET 1分钟不执行其他操作,节点会自动回到集群
主从切换:cluster failover [force | takeover]在slave上执行,主从切换
cluster saveconfig 将节点的配置文件保存到硬盘里面
cluster flushslots移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点
cluster keyslot <key> 计算键key应该被放在在哪个槽上
cluster countkeysinslot <slot>返回槽slot目前包含的键值对数量
二、键管理
1、键重命名
rename oldkey newkey
renamenx name name1 //重命名失败,只有当name1不存在才能改名
2、返回随机键
randomkey
3、键过期
expire keytest 20 //键test在20秒后过期
ttl keytest //查看过期按秒倒计时,当返回值为-2时说明该键已经被删除
pttl keytest //查看过期按毫秒倒计时
pexpire keytest 20000 //20000毫秒后过期
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无效
set name james
expire name 50
ttl name
set name james1 //此时expire取消
ttl name //返回-1, 长期有效
4、键的迁移
把部分数据迁移到另一台Redis服务器
192.168.200.100:7001> config get databases
1) "databases"
2) "16"
可以看到Redis有16个库,编号为 0-15
1、key 的迁移
move keytest 5 //迁移到第6个库 select 5 //数据库切换到第6个库 上面这种模式不建议在生产环境使用,在同一个redis里可以玩
2、dump key
restore key ttl 0 //实现不同的Redis实例的键迁移,ttl = 0代表没有过去时间
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

5、键的遍历
Redis提供了两个命令来遍历所有的键
a、键全量遍历
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
考虑到是单线程, 在生产环境不建议使用,如果键多可能会阻塞,如果键少,可以
b、渐进式遍历
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一样
6、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: 清空所有库的键值对 (这两个指令慎用!!!!
Redis学习之路(三)常用命令总结的更多相关文章
- Redis——学习之路三(初识redis config配置)
我们先看看config 默认情况下系统是怎么配置的.在命令行中输入 config get *(如图) 默认情况下有61配置信息,每一个命令占两行,第一行为配置名称信息,第二行为配置的具体信息. ...
- Redis学习(6)-常用命令
List命令 value值为LinkedList类型. 使用环境: 1,做大数据集合的增删. 2,任务队列.用户任务队列 链表查看 lrange key start end:获取链表从start到en ...
- Redis 学习之路 (009) - Redis-cli命令最新总结
资料来源: http://redisdoc.com/ http://redis.io/commands 连接操作相关的命令 默认直接连接 远程连接-h 192.168.1.20 -p 6379 pi ...
- Redis——学习之路四(初识主从配置)
首先我们配置一台master服务器,两台slave服务器.master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器. 两台slave服务 ...
- Redis——学习之路二(初识redis服务器命令)
上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息 s ...
- redis 学习(二)-- 通用命令
redis 学习(二)-- 通用命令 1. keys pattern 含义:查找所有符合给定模式(pattern)的key 命令 含义 keys * 遍历所有 key keys he[h-l]* 遍历 ...
- 学习之路三十九:新手学习 - Windows API
来到了新公司,一开始就要做个程序去获取另外一个程序里的数据,哇,挑战性很大. 经过两周的学习,终于搞定,主要还是对Windows API有了更多的了解. 文中所有的消息常量,API,结构体都整理出来了 ...
- Redis学习之路(000)- 目录
本文是博主学习整理网上大神的文件以及自学的心得. Redis学习之路(000)- 目录 Redis学习之路(001)- Redis介绍以及安装(Linux) Redis学习之路(002)- Ubunt ...
- docker学习笔记二:常用命令
docker学习笔记二:常用命令 查看docker常用命令 docker --help 返回结果如下: 其中常用的命令如下: 1.image相关操作 展示所有的image: 删除image: rmi ...
- Hexo系列(三) 常用命令详解
Hexo 框架可以帮助我们快速创建一个属于自己的博客网站,熟悉 Hexo 框架提供的命令有利于我们管理博客 1.hexo init hexo init 命令用于初始化本地文件夹为网站的根目录 $ he ...
随机推荐
- Python中数字按位取反的方法
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 Python中有个按位取反运算符:,但这个运算符并不是真正的按位取反,而是效果相当于原值乘以负一再减 ...
- Djang项目部署之sqlite版本升级
项目环境: centos7 django 2.2.10 问题描述: 使用了django 2.2.12版本开发项目,此版本对应的sqlite需要升级为3.8.0以上. 百度了不少解决方案,缺点:过程繁琐 ...
- 手把手教你写DI_1_DI框架有什么?
DI框架有什么? 在上一节:手把手教你写DI_0_DI是什么? 我们已经理解DI是什么 接下来我们就徒手撸一撸,玩个支持构造函数注入的DI出来 首先我们回顾一下 构造函数注入 的代码形式, 大概长这模 ...
- nodjs html 转 pdf
var fs = require('fs');var pdf = require('html-pdf');//模块//读取html 文件 var html = fs.readFileSync('./s ...
- CF484B Maximum Value
这个东西他一开始也是草稿 题解 我们考虑在值域上做,设值域为 \(m\) . 我们可以考虑数论分块,对于一对 \(a_i\) 和 \(a_j\) ,$\left \lfloor \frac{a_i}{ ...
- redis学习之——在分布式数据库中CAP原理CAP+BASE
分布式系统 分布式系统(distributed system) 由多台计算机和通信的软件组件通过计算机网络连接(本地网络或广域网)组成.分布式系统是建立在网络之上的软件系统.正是因为软件的特性,所以分 ...
- ps查看完整程序执行路径
在linux下查看进程大家都会想到用 ps -ef|grep ***可是看到的不是全路径,怎么看全路径呢?每个进程启动之后在 /proc下面有一个于pid对应的路径例如:ps -ef|grep jav ...
- 安装ELK的一些问题
1.使用的是centos6,其linux内核版本为2.6.而Elasticsearch的插件要求至少3.5以上版本 ,禁用这个插件即可.修改elasticsearch.yml文件,在最下面添加如下配置 ...
- 【网盘下载加速器】可爆破提取码 加速高达20M以上
[软件名称]:网盘下载加速 [软件版本]:1.0.0 [软件大小]:3.95MB [支持系统]:Android,4.4+及更高版本 [测试系统]:小米 [使用说明]:一款小巧的网盘 ...
- LLVM程序分析日记之 basic blocks could have duplicate predecessors
We used the predecessors() to get the predecessors of a basic block based on LLVM's IR. The code is ...
