星哥自用的Redis的常用操作

# 星哥自用的Redis的常用操作

Redis 是一款高性能的开源内存数据库,以其卓越的速度和多功能性广泛应用于缓存、消息队列、会话管理等场景。

在日常开发与运维过程中,星哥总结了一些常用的 Redis 操作方法,这篇文章旨在分享这些实用的 Redis 命令,希望对读者的实际工作有所帮助。

image-20241225163049638

# 1.命令行连接Redis

无密码

redis-cli -h 127.0.0.1 -p 6379
1

有密码

redis-cli -h 127.0.0.1 -p 6379 -a 123456 
1

# 2.停止Redis

无密码

redis-cli -h 127.0.0.1 -p 6379 shutdown
1

有密码

redis-cli -h 127.0.0.1 -p 6379 -a 123456 shutdown
1

# 进入Reids

# 1.查看server版本内存使用连接等信息

执行 info 命令会返回关于 Redis 服务器的各种统计信息、配置参数和性能数据。具体来说,info 命令默认会显示所有可用的统计信息,但你也可以通过给命令传递参数来查看特定类别的信息。

redis 127.0.0.1:6379> info  
1

# info演示

127.0.0.1:63920> info
# Server
redis_version:3.2.5
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:d0475cbecb2a8a75
redis_mode:standalone
os:Linux 3.10.0-1160.108.1.el7.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.8.5
process_id:1292
run_id:be217118cef41cf9b7eff1c530d4a9b670767844
tcp_port:63920
uptime_in_seconds:78344
uptime_in_days:0
hz:10
lru_clock:7060047
executable:/usr/local/bin/redis-server
config_file:/data/conf/63920.conf

# Clients
connected_clients:1
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0

# Memory
used_memory:2193296
used_memory_human:2.09M
used_memory_rss:12120064
used_memory_rss_human:11.56M
used_memory_peak:3200752

只查看CPU信息
127.0.0.1:63920> info CPU
# CPU
used_cpu_sys:52.03
used_cpu_user:27.55
used_cpu_sys_children:0.63
used_cpu_user_children:0.36
127.0.0.1:63920> 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

# 2.获取客户连接列表

client list  
1

# client list 演示

127.0.0.1:63920> client list  
id=3115 addr=127.0.0.1:38478 fd=5 name= age=0 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

1
2
3

# 3.终止某个客户端连接

redis 127.0.0.1:63920> client kill 127.0.0.1:38478
1

# 4.当前保存key的数量

redis 127.0.0.1:63920> dbsize
演示:

127.0.0.1:63920> dbsize
(integer) 35
1
2
3
4
5

# 5.立即保存数据到硬盘

redis 127.0.0.1:63920> save

演示
127.0.0.1:63920> save
OK
1
2
3
4
5

# 6.异步保存数据到硬盘

redis 127.0.0.1:63920> bgsave

演示
127.0.0.1:63920> bgsave
Background saving started
1
2
3
4
5

# 7.当前库中移除所有key

慎重使用

在 Redis 中,FLUSHDB 命令用于删除当前数据库中的所有键(keys)。Redis 默认支持 16 个数据库(编号从 0 到 15),每个数据库是相互独立的,FLUSHDB 命令仅会影响当前所选择的数据库,而不会清空其他数据库。

127.0.0.1:63920> flushdb
1

# 8.移除所有key从所有库中

慎重使用

在 Redis 中,FLUSHALL 命令用于删除 Redis 实例中的所有数据库中的所有键(keys)。它会清空 Redis 实例中的所有数据,而不仅仅是当前选择的数据库。

127.0.0.1:63920> flushall
1

# 9.获取上次成功保存到硬盘的unix时间戳

redis 127.0.0.1:63920> lastsave                     

演示
127.0.0.1:63920> lastsave
(integer) 1735113701
1
2
3
4
5

# 10.查询慢查询日志条数

在 Redis 中,SLOWLOG LEN 命令用于获取 慢查询日志 中的条目数。慢查询日志是 Redis 用来记录执行时间超过特定阈值的命令的日志,通常用于排查性能瓶颈。

redis 127.0.0.1:6379> slowlog len


redis 127.0.0.1:6379> slowlog get                     #返回所有的慢查询日志,最大值取决于slowlog-max-len配置
redis 127.0.0.1:6379> slowlog get 2                 #打印两条慢查询日志
redis 127.0.0.1:6379> slowlog reset                 #清空慢查询日志信息
1
2
3
4
5
6

# 11.获取所有配置项

在 Redis 中,CONFIG GET * 命令用于获取当前 Redis 实例的所有配置参数及其值。该命令返回 Redis 的配置设置,包括默认配置和在运行时通过 CONFIG SET 命令更改过的配置项。

redis 127.0.0.1:6379> config get * 

演示
127.0.0.1:63920> config get * 
  1) "dbfilename"
  2) "dump.rdb"
  3) "requirepass"
  4) ""
  5) "masterauth"
  6) ""
  7) "unixsocket"
  8) ""
  9) "logfile"
 10) "/data/wwwroot/log/redis_63920.log"
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 12.获取 redis 中所有的 key

KEYS *
1

# 13.删除某个key

del 关键字

127.0.0.1:63920> KEYS *
1) "user"
2) "name"
127.0.0.1:63920> del user
(integer) 1
127.0.0.1:63920> KEYS *
1) "name"
1
2
3
4
5
6
7

# 14.批量删除

REDIS_HOST="127.0.0.1"
REDIS_PORT="6379"
REDIS_PASSWD="123456"

redis-cli -h $REDIS_HOST -p $REDIS_PORT -a $REDIS_PASSWD keys 'key*' | xargs  redis-cli -h $REDIS_HOST -p $REDIS_PORT -a $REDIS_PASSWD del
1
2
3
4
5

# 15.批量删除

# redis-cli -a pass(密码) keys "keywords*" | xargs redis-cli -a pass(密码) del

1
2

删除 端口为 6585 密码为 123456 且数据库为1 中所有UPLOAD_开头的key

/usr/bin/redis-cli -n 1 -p 6585 -a 123456 keys 'UPLOAD_*' | xargs /usr/bin/redis-cli -n 1 -p 6585 -a 123456 del

1
2

# redis-dump数据导出导入方式

# 1.安装redis-dump工具

[root@172.20.0.3 ~]# yum install ruby rubygems ruby-devel -y

更改gem源

[root@172.20.0.3 ~]# gem sources --add http://gems.ruby-china.org/ --remove http://rubygems.org/
http://gems.ruby-china.org/ added to sources
source http://rubygems.org/ not present in cache
[root@172.20.0.3 ~]# gem sources -l
*** CURRENT SOURCES ***
 
http://gems.ruby-china.org/
[root@172.20.0.3 ~]# gem install redis-dump -V
1
2
3
4
5
6
7
8
9
10
11
12

# 2.redis-dump导出

[root@172.20.0.3 ~]# redis-dump -u :password@172.20.0.1:6379 > 172.20.0.1.json
1

# 3.redis-load导入

[root@172.20.0.3 ~]# cat 172.20.0.1.json | redis-load -u :password@172.20.0.2:6379
1