Redis server命令

欢迎大家加入 459479177QQ群进行交流

本章介绍Redis sever

1、sync,类似MySQL的replication

127.0.0.1:6379> sync
Entering slave output mode...  (press Ctrl-C to quit)
SYNC with master, discarding 601 bytes of bulk transfer...
SYNC done. Logging commands from master.
"PING"
"PING"

2、slowlog,管理redis慢日志

\\查看日志信息:
redis 127.0.0.1:6379> slowlog get 2
1) 1) (integer) 14
   2) (integer) 1309448221
   3) (integer) 15
   4) 1) "ping"
2) 1) (integer) 13
   2) (integer) 1309448128
   3) (integer) 30
   4) 1) "slowlog"
      2) "get"
      3) "100"
      
      
\\查看当前日志的数量:
redis 127.0.0.1:6379> SLOWLOG LEN
(integer) 14

\\使用命令 SLOWLOG RESET 可以清空 slow log
redis 127.0.0.1:6379> SLOWLOG LEN
(integer) 14
 
redis 127.0.0.1:6379> SLOWLOG RESET
OK
 
redis 127.0.0.1:6379> SLOWLOG LEN
(integer) 0

3、slaveof把当前指定服务器转向指定另外的服务器

127.0.0.1:6379> slaveof 127.0.0.1 6379
OK
127.0.0.1:6379> slaveof no one        \\『 SLAVEOF NO ONE 不会丢弃同步所得数据集』这个特性,可以在主服务器失败的时候,将从属服务器用作新的主服务器,从而实现无间断运行。
OK

4、shutdown异步保持数据并关闭服务

127.0.0.1:6379> ping
PONG
127.0.0.1:6379> shutdown
not connected> ping
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected>

5、save异步保持数据

127.0.0.1:6379> save
OK

6、role查看当前角色

127.0.0.1:6379> role
1) "master"
2) (integer) 0
3) (empty list or set)

7、monitor实事打印当前服务的接受,调用等命令

\\开启monitor命令
127.0.0.1:6379> monitor 
OK
\\打开新的session执行命令
127.0.0.1:6379> get name
"jeery"
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set name tom 
QUEUED
127.0.0.1:6379> set name sunshine
QUEUED
127.0.0.1:6379> exec
1) OK
2) OK
127.0.0.1:6379> get name
"sunshine"
\\在开启monitor信息返回
127.0.0.1:6379> monitor 
OK
1475137582.021887 [0 127.0.0.1:52468] "multi"
1475137597.151760 [0 127.0.0.1:52468] "set" "name" "tom"
1475137597.151792 [0 127.0.0.1:52468] "set" "name" "sunshine"
1475137597.151800 [0 127.0.0.1:52468] "exec"
1475137602.628792 [0 127.0.0.1:52468] "get" "name"

8、lastslsave最后一数据的保存时间,以unix时间格式

127.0.0.1:6379> lastsave
(integer) 1475138167

9、info获取redis服务器的各种信息

127.0.0.1:6379> info
server : 一般 Redis 服务器信息,包含以下域:
redis_version : Redis 服务器版本
redis_git_sha1 : Git SHA1
redis_git_dirty : Git dirty flag
os : Redis 服务器的宿主操作系统
arch_bits : 架构(32 或 64 位)
multiplexing_api : Redis 所使用的事件处理机制
gcc_version : 编译 Redis 时所使用的 GCC 版本
process_id : 服务器进程的 PID
run_id : Redis 服务器的随机标识符(用于 Sentinel 和集群)
tcp_port : TCP/IP 监听端口
uptime_in_seconds : 自 Redis 服务器启动以来,经过的秒数
uptime_in_days : 自 Redis 服务器启动以来,经过的天数
lru_clock : 以分钟为单位进行自增的时钟,用于 LRU 管理
clients : 已连接客户端信息,包含以下域:
connected_clients : 已连接客户端的数量(不包括通过从属服务器连接的客户端)
client_longest_output_list : 当前连接的客户端当中,最长的输出列表
client_longest_input_buf : 当前连接的客户端当中,最大输入缓存
blocked_clients : 正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端的数量
memory : 内存信息,包含以下域:
在理想情况下, used_memory_rss 的值应该只比 used_memory 稍微高一点儿。
当 rss > used ,且两者的值相差较大时,表示存在(内部或外部的)内存碎片。
内存碎片的比率可以通过 mem_fragmentation_ratio 的值看出。
当 used > rss 时,表示 Redis 的部分内存被操作系统换出到交换空间了,在这种情况下,操作可能会产生明显的延迟。
当 Redis 释放内存时,分配器可能会,也可能不会,将内存返还给操作系统。
如果 Redis 释放了内存,却没有将内存返还给操作系统,那么 used_memory 的值可能和操作系统显示的 Redis 内存占用并不一致。
查看 used_memory_peak 的值可以验证这种情况是否发生。
used_memory : 由 Redis 分配器分配的内存总量,以字节(byte)为单位
used_memory_human : 以人类可读的格式返回 Redis 分配的内存总量
used_memory_rss : 从操作系统的角度,返回 Redis 已分配的内存总量(俗称常驻集大小)。这个值和 top 、 ps 等命令的输出一致。
used_memory_peak : Redis 的内存消耗峰值(以字节为单位)
used_memory_peak_human : 以人类可读的格式返回 Redis 的内存消耗峰值
used_memory_lua : Lua 引擎所使用的内存大小(以字节为单位)
mem_fragmentation_ratio : used_memory_rss 和 used_memory 之间的比率
mem_allocator : 在编译时指定的, Redis 所使用的内存分配器。可以是 libc 、 jemalloc 或者 tcmalloc 。
persistence : RDB 和 AOF 的相关信息
stats : 一般统计信息
replication : 主/从复制信息
cpu : CPU 计算量统计信息
commandstats : Redis 命令统计信息
cluster : Redis 集群信息
keyspace : 数据库相关的统计信息

10、flushdb清楚当前库的所有key

127.0.0.1:6379> keys *
1) "pfkey"
2) "pfkey5"
3) "pfkey4"
4) "pfkey3"
5) "pfkey2"
6) "name"
7) "pfkey1"
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> keys *
(empty list or set)

11、flushall清除所有库的所有key

127.0.0.1:6379> flushall
OK

12、debug sgefault让redis崩溃用作deng调试

127.0.0.1:6379> debug segfault
Could not connect to Redis at 127.0.0.1:6379: Connection refused
(1.12s)

13、debug object获取key的调试信息

127.0.0.1:6379> debug object name
Value at:0x7f5f7b8135e0 refcount:1 encoding:embstr serializedlength:9 lru:15530812 lru_seconds_idle:6

14、dbsize获取当前库的key数量

127.0.0.1:6379> dbsize
(integer) 2
127.0.0.1:6379> keys *
1) "name"
2) "age"

15、config resetstat重启info信息

127.0.0.1:6379> config resetstat
OK
127.0.0.1:6379>

16、config set设定配置参数无需重启redis

127.0.0.1:6379> config get slowlog-max-len
1) "slowlog-max-len"
2) "128"
127.0.0.1:6379> config set slowlog-max-len 256
OK
127.0.0.1:6379> config get slowlog-max-len
1) "slowlog-max-len"
2) "256"

17、config rewrite对redis.conf进行改写

127.0.0.1:6379> config get slowlog-max-len
1) "slowlog-max-len"
2) "128"
127.0.0.1:6379> config set slowlog-max-len 256
OK
127.0.0.1:6379> config get slowlog-max-len
1) "slowlog-max-len"
2) "256"
127.0.0.1:6379> config rewrite
OK

18、config get获取指定参数的配置值

127.0.0.1:6379> config get slowlog-max-len
1) "slowlog-max-len"
2) "256"

19、command info获取redis命令的描述数组

127.0.0.1:6379> command info zadd
1) 1) "zadd"
   2) (integer) -4
   3) 1) write
      2) denyoom
      3) fast
   4) (integer) 1
   5) (integer) 1
   6) (integer) 1
127.0.0.1:6379> command info sadd
1) 1) "sadd"
   2) (integer) -3
   3) 1) write
      2) denyoom
      3) fast
   4) (integer) 1
   5) (integer) 1
   6) (integer) 1
127.0.0.1:6379> command info info
1) 1) "info"
   2) (integer) -1
   3) 1) readonly
      2) loading
      3) stale
   4) (integer) 0
   5) (integer) 0
   6) (integer) 0

20、time返回当前服务器时间,以Unix时间戳

127.0.0.1:6379> time
1) "1475149289"
2) "806040"

21、command getkeys 获取给定所有的键

127.0.0.1:6379> COMMAND GETKEYS mset name tom age 20
1) "name"
2) "age"

22、command count获取redis有多少命令

127.0.0.1:6379> command count
(integer) 163

23、command获取所有命令详细数组

127.0.0.1:6379> command 
1) 1) "pfcount"
     2) (integer) -2
     3) 1) write
     4) (integer) 1
     5) (integer) 1
     6) (integer) 1
...            \\省略
163) 1) "zincrby"
     2) (integer) 4
     3) 1) write
        2) denyoom
        3) fast
     4) (integer) 1
     5) (integer) 1
     6) (integer) 1

24、cluster slots获取集群节点的映射数组

redis 127.0.0.1:6379> cluster slots
1) 1) (integer) 0
   2) (integer) 4095
   3) 1) "127.0.0.1"
      2) (integer) 7000
   4) 1) "127.0.0.1"
      2) (integer) 7004
2) 1) (integer) 12288
   2) (integer) 16383
   3) 1) "127.0.0.1"
      2) (integer) 7003
   4) 1) "127.0.0.1"
      2) (integer) 7007
3) 1) (integer) 4096
   2) (integer) 8191
   3) 1) "127.0.0.1"
      2) (integer) 7001
   4) 1) "127.0.0.1"
      2) (integer) 7005
4) 1) (integer) 8192
   2) (integer) 12287
   3) 1) "127.0.0.1"
      2) (integer) 7002
   4) 1) "127.0.0.1"
      2) (integer) 7006

25、client setname设置当前连接名称

# 新连接默认没有名字
 
redis 127.0.0.1:6379> CLIENT GETNAME
(nil)
 
# 设置名字
 
redis 127.0.0.1:6379> CLIENT SETNAME hello-world-connection
OK
 
# 返回名字
 
redis 127.0.0.1:6379> CLIENT GETNAME
"hello-world-connection"
 
# 在客户端列表中查看
 
redis 127.0.0.1:6379> CLIENT LIST
addr=127.0.0.1:36851
fd=5
name=hello-world-connection     # <- 名字
age=51
...
# 清除名字
redis 127.0.0.1:6379> CLIENT SETNAME        # 只用空格是不行的!
(error) ERR Syntax error, try CLIENT (LIST | KILL ip:port)
 
redis 127.0.0.1:6379> CLIENT SETNAME ""     # 必须双引号显示包围
OK
 
redis 127.0.0.1:6379> CLIENT GETNAME        # 清除完毕

26、client getname获取当前连接名称

# 新连接默认没有名字
 
redis 127.0.0.1:6379> CLIENT GETNAME
(nil)
 
# 设置名字
 
redis 127.0.0.1:6379> CLIENT SETNAME hello-world-connection
OK
 
# 返回名字
 
redis 127.0.0.1:6379> CLIENT GETNAME
"hello-world-connection"

27、client list获取连接到服务器的客户端信息

127.0.0.1:6379> client list
id=2 addr=127.0.0.1:52472 fd=6 name= age=1390 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client

addr : 客户端的地址和端口
fd : 套接字所使用的文件描述符
age : 以秒计算的已连接时长
idle : 以秒计算的空闲时长
flags : 客户端 flag
db : 该客户端正在使用的数据库 ID
sub : 已订阅频道的数量
psub : 已订阅模式的数量
multi : 在事务中被执行的命令数量
qbuf : 查询缓冲区的长度(字节为单位, 0 表示没有分配查询缓冲区)
qbuf-free : 查询缓冲区剩余空间的长度(字节为单位, 0 表示没有剩余空间)
obl : 输出缓冲区的长度(字节为单位, 0 表示没有分配输出缓冲区)
oll : 输出列表包含的对象数量(当输出缓冲区没有剩余空间时,命令回复会以字符串对象的形式被入队到这个队列里)
omem : 输出缓冲区和输出列表占用的内存总量
events : 文件描述符事件
cmd : 最近一次执行的命令
客户端 flag 可以由以下部分组成:
O : 客户端是 MONITOR 模式下的附属节点(slave)
S : 客户端是一般模式下(normal)的附属节点
M : 客户端是主节点(master)
x : 客户端正在执行事务
b : 客户端正在等待阻塞事件
i : 客户端正在等待 VM I/O 操作(已废弃)
d : 一个受监视(watched)的键已被修改, EXEC 命令将失败
c : 在将回复完整地写出之后,关闭链接
u : 客户端未被阻塞(unblocked)
A : 尽可能快地关闭连接
N : 未设置任何 flag
文件描述符事件可以是:
r : 客户端套接字(在事件 loop 中)是可读的(readable)
w : 客户端套接字(在事件 loop 中)是可写的(writeable)

28、client kill关闭客户端命令

id=2 addr=127.0.0.1:52472 fd=6 name= age=1390 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client
127.0.0.1:6379> client kill 127.0.0.1:52472
OK
\\仔细发下下面的端口变成了52473,说明client被关闭,而且又重新连接了服务器
127.0.0.1:6379> client list
id=3 addr=127.0.0.1:52473 fd=6 name= age=19 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client

29、bgsave在后台异步保存数据到磁盘上去

127.0.0.1:6379> BGSAVE
Background saving started

30、bgrewriteaof异步执行一个aof重写操作

127.0.0.1:6379> bgrewriteaof
Background append only file rewriting started

至此redis server命令就介绍完毕啦~下一章节我们介绍redis的主从集群等相关!

欢迎大家加入 459479177QQ群进行交流

时间: 2024-10-29 10:48:29

Redis server命令的相关文章

虚拟机centOS中安装Redis,主机Redis Destop Manager不能访问虚拟机Redis server的解决方案

今天在学些redis的时候碰到个问题,发现主机Redis Destop Manager不能访问虚拟机Redis server的解决方案,找了一些网上的资料,原因可能有两个,整理记录下来: 1. Redis.conf文件中打开了 # By default Redis listens for connections from all the network interfaces# available on the server. It is possible to listen to just on

redis info 命令详解

详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt119 Redis Info 命令以一种易于理解和阅读的格式,返回关于 Redis 服务器的各种信息和统计数值. 通过给定可选的参数 section ,可以让命令只返回某一部分的信息: server : 一般 Redis 服务器信息,包含以下域: redis_version : Redis 服务器版本 redis_git_sha1 : Git SHA1 redis_git_d

Redis常用命令解析——INFO, MONITOR, SLOWLOG

作者:zhanhailiang 日期:2014-12-02 1. INFO info指令返回服务器相关信息,包括: server: General information about the Redis server clients: Client connections section memory: Memory consumption related information persistence: RDB and AOF related information stats: Genera

自学总结redis第二部分(redis常用命令、高级命令特性以及与java代码的结合)

六.redis多数据类型介绍(常用命令) 6.1前提操作 #如果前面的redis环境没搭好,那么可以先暂时在 "http://try.redis.io/"中实践redis命令部分.   #为了测试方便,把redis登录密码暂时撤销   #redis一共分为五种基本数据类型:String,Hash,List,Set,ZSet #所有命令都可以到"http://www.redis.cn/commands.html"  去搜索到. #首先由于redis是一个基于key-v

redis常用命令及高级特性

11.redis常用命令 keys * 返回所有的键 keys my* 模糊匹配 exists key 确认key是否存在 del key expire key time对现有的键设置过期时间[秒为单位] ttl key 查看过期时间,-1代表已过期 move 将当期数据库中的key移到其它数据库当中 select database_name 选择数据库 move key database_name persist key 取消过期时间,此时ttl key返回-1并不代表过期 randomkey

Redis监控工具,命令和调优

Redis监控工具,命令和调优 1.图形化监控 由于要对Redis做性能測试,发现了GitHub上有个python写的RedisLive监控工具评价不错.结果鼓捣了半天,最后发现其主页中引用了Google的jsapi脚本,必须在线连接谷歌的服务.Stackoverflow上说把js脚本下载到本地也没法解决这个问题,坑爹! 正要放弃时发现了一个从RedisLive fork出去的项目redis-monitor,应该是国人改的吧,去掉了对谷歌jsapi的依赖,并完好了多Redis实例的管理,最终最终

Redis Pubsub命令用法

一.什么是pub/sub及实现Pub/Sub功能(means Publish, Subscribe)即发布及订阅功能. Redis通过publish和subscribe命令实现订阅和发布的功能. 订阅者通过subscribe向redis server订阅自己感兴趣的消息类型.redis将信息类型称为通道(channel).当发布者通过publish命令向redis server发送特定类型的信息时,订阅该消息类型的全部订阅者都会收到此消息. 客户端1订阅CCTV1: 127.0.0.1:6379

Redis常用命令速查 02_转

一.Key Key命令速查: 命令 说明 DEL 删除给定的一个或多个 key,不存在的 key 会被忽略,返回值:被删除 key 的数量 DUMP 序列化给定 key,返回被序列化的值,使用 RESTORE 命令可以将这个值反序列化为 Redis 键 EXISTS 检查给定 key 是否存在 EXPIRE 为给定key设置有效时间,接受时间点 EXPIREAT 为给定key设置有效时间,接受时间戳timestamp KEYS 查找所有符合给定模式 pattern 的 key:KEYS * 匹配

Redis常用命令速查 &lt;第二篇&gt;

一.Key Key命令速查: 命令 说明 DEL 删除给定的一个或多个 key,不存在的 key 会被忽略,返回值:被删除 key 的数量 DUMP 序列化给定 key,返回被序列化的值,使用 RESTORE 命令可以将这个值反序列化为 Redis 键 EXISTS 检查给定 key 是否存在 EXPIRE 为给定key设置有效时间,接受时间点 EXPIREAT 为给定key设置有效时间,接受时间戳timestamp KEYS 查找所有符合给定模式 pattern 的 key:KEYS * 匹配