Hexo

点滴积累 豁达处之

0%

03 redis管理命令

Redis对每种数据的处理之前,都要先指定该数据的key,然后再指定对该数据进行何种操作。

Redis中的key有点类似于Java中的变量名,起到提纲挈领的作用,对某个数据的处理都是以key作为切入点。所以Redis把key作为单独的处理对象抽象出了一套操作命令。key可以想象成一个指向实际数据的指针,对key的操作会直接影响它所指向的数据的状态。

1 key操作

比如,我们想删除某个数据,就可以通过删除它的key来达到目的:

1
2
3
4
5
6
7
8
127.0.0.1:6379> SET name chenlongfei
OK
127.0.0.1:6379> GET name
"chenlongfei"
127.0.0.1:6379> DEL name
(integer) 1
127.0.0.1:6379> GET name
(nil)

想要查看某个数据的类型:

1
2
3
4
127.0.0.1:6379> SADD direction east west south north
(integer) 4
127.0.0.1:6379> TYPE direction
set

想要更改某个数据的key的名字:

1
2
3
4
5
6
7
127.0.0.1:6379> RENAME direction direct
OK
127.0.0.1:6379> SMEMBERS direct
1) "north"
2) "west"
3) "south"
4) "east"

2 key操作命令汇总

命令格式 说明
DEL key [key …] 此命令删除键,如果存在
EXISTS key 此命令检查该键是否存在
EXPIRE key seconds 指定键的过期时间(秒)
PEXPIRE key milliseconds 指定键的过期时间(毫秒)
EXPIREAT key timestamp 以Unix时间戳格式(秒)指定键的过期时间
PEXPIREAT key milliseconds-timestamp 以Unix时间戳格式(毫秒)指定键的过期时间
KEYS pattern 查找与指定模式匹配的所有键。pattern支持glob-style的通配符格式,如*表示任意一个或多个字符,?表示任意字符,[abc]表示方括号中任意一个字母
RENAME key newkey 更改键的名称
RENAMENX key newkey 重命名键,如果新的键不存在
TYPE key 返回存储在键的数据类型的值
RANDOMKEY 从Redis返回随机键的名字
PERSIST key 如果Key存在过期时间,该命令会将其过期时间消除,使该Key不再有超时,而是可以持久化存储
TTL key Time To Live)返回该键的剩余存活时间(秒),如果该键不存在或没有超时设置,则返回-1
PTTL key 返回该键的剩余存活时间(毫秒)

3 设置客户端操作密码

redis安装好后,默认情况下登陆客户端和使用命令操作时不需要密码的。某些情况下,为了安全起见,我们可以设置在客户端连接后进行任何操作之前都要进行密码验证。修改redis.conf进行配置。

1
2
3
4
5
6
7
8
9
10
#######################SECURITY ##############################
......
# Warning: since Redis is pretty fast an outside user can try up to
# 150k passwords per second against a good box. This means that you should
# use a very strong password otherwise it will be very easy to break.
#
# requirepass foobared
requirepass redis129

# Command renaming.

如上,找到# requirepass foobared这一行,在下面添加“requirepass 密码”一行设置密码。设置好密码后,有两种方式授权客户端进行操作。

3.1 客户端授权方式

登录时使用-a参数指定客户端密码,如下

1
2
3
4
[root@localhost ~]# /usr/local/redis/bin/redis-cli -h 192.168.2.129 -p 6379 -a redis129
192.168.2.129:6379> keys *
1) "myzset"
192.168.2.129:6379>

登录客户端后使用auth命令进行授权,如下

1
2
3
4
5
6
7
8
[root@localhost ~]# /usr/local/redis/bin/redis-cli -h 192.168.2.129 -p 6379
192.168.2.129:6379> keys *
(error) NOAUTH Authentication required.
192.168.2.129:6379> auth redis129
OK
192.168.2.129:6379> keys *
1) "myzset"
192.168.2.129:6379>

3.2 命令汇总

命令格式 说明
AUTH password 验证密码
ECHO message 打印字符串
PING 检验连接状况,正常情况下服务器会返回“PONG”。
QUIT 关闭当前连接
SELECT index 切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值。默认使用 0 号数据库。

4 服务器管理

Redis定义了一组与服务器相关的命令,用于查询服务器信息,如当前时间、客户端连接数量,以及修改配置文件、手动触发某些操作等。

命令格式 说明
INFO 打印服务器的详细信息
CONFIG GETname 获取配置项name的内容
CONFIG SETname value 将配置项name的值设为value,无需重启
BGSAVE 在后台异步保存当前数据库的数据到磁盘。BGSAVE 命令执行之后立即返回 OK ,然后 Redis fork 出一个新子进程,原来的 Redis 进程(父进程)继续处理客户端请求,而子进程则负责将数据保存到磁盘,然后退出。
SAVE SAVE 命令执行一个同步操作,以RDB文件的方式保存所有数据的快照。很少在生产环境直接使用SAVE 命令,因为它会阻塞所有的客户端的请求,可以使用BGSAVE 命令代替
FLUSHALL 删除所有数据库的所有key
FLUSHDB 删除当前数据库的所有key
SHUTDOWN [NOSAVE][SAVE] 停止所有客户端,如果配置了save 策略 则执行一个阻塞的save命令,如果开启了AOF,则刷新aof文件,关闭Redis服务进程(Redis-server)。