<!--markdown--># Redis常用命令
启动服务
redis-server redis.conf
redis默认端口是6379,启动完成。默认redis是前台阻塞启动,即是启动后,如果关闭当前窗口也会关闭redis服务,如果想后台启动,请修改配置文件的配置项 daemonize为yes,redis将会以守护进程在后台启动。
启动客户端
redis-cli
该命令是启动redis的客户端,默认会连接本地端口为6379的服务端,如果你的redis配置了密码认证,可以这样使用redis-cli auth 520code 即可连接。也可以连接远程服务端:redis-cli -h 127.0.0.1 -p 6379 -a "520code"
关闭服务
redis-cli shutdown
如果有密码会提示输入密码,如果关闭不了,也可以强制结束进程使用: killall -9 redis-server
常用命令操作
String
新增一个键值对数据,如果存在直接替换,不存在直接添加
set name 520code.com
获取名称为key的value值
get name
判断key是否存在
exists name
批量新增多个key-value数据
mset name 520code.net desc blog author wangzie
批量获取多个key对应的value值
mget name desc author
新增key-value值,如果不存在则添加,存在则不新增
setnx name oneinlet.com
新增带过期时间的key-value数据,时间单位为 S(秒)
setex endtime 5 2019-03-02
对key的value值进行自增+1
incr age
对key的value值进行自减-1
decr age
对key的value值进行指定增加
incrby age 5
对key的value值进行指定减去
decrby age 5
对key的value值进行追加拼接
append name hi
获取key对应value的值的长度
strlen name
Hash
向名称为key的hash中新增 field 和value值
hset map name wangzihe
获取名称为key的hash中的field对应的value值
hget map name
批量添加名称为key的hash的field-value值
hmset map name wangzihe age 25 weight 80
批量获取名称为key的hash中多个field的值
hmget map name age weight
判断名称为key的hash中是否存在field的value值
hexists map name
删除名称为key的hash中存在的field-value值
hdel map name
获取名称为key的hash中存在多少个field-value值
hlen map
获取名称为key的hash中所有的field
hkeys map
获取名称为key的hash中所有的value
hvals map
获取名称为key的hash中所有的field-value
hgetall map
List
list是一个双向链接数据。left表示头部,right表示尾部,两边皆可添加修改数据。
向名称为key的list的头部添加数据
lpush list cloud rain
向名称为key的list的尾部添加数据
rpush list snow
遍历名称为key的list的所有数据
lrange list 0 -1
获取名称为key的list的容量
llen list
获取名称为key的list的指定索引下的值
lindex list 0
为名称为key的list的指定索引下的值重新赋值
lset list 0 ice
删除名称为key的list的头部值
lpop list
删除名称为key的list的尾部值
rpop list
阻塞删除名称为key的list的头部值,等待时间S秒
blpop list 5
阻塞删除名称为key的list的尾部值,等待时间S秒
brpop list 5
Set
向名称为key的set中新增value值
sadd set java
获取名称为key的set的所有成员值
smembers set
获取名称为key的set的所有成员数量
scard set
删除名称为key的set的成员
srem set java
判断名称为key的set的成员是否存在
sismember set java
Sorted Set(有序集合)
向名称为key的有序集合中新增带分数的成员 1是分数 可实现升序降序排序
zadd sset 1 java
获取名称为key的有序集合中的所有成员数量
zcard sset
统计名称为key的有序集合中指定区间分数的成员数量
zcount sset 0 10
向名称为key的有序集合中的指定成员增加分数
zincrby sset 50 java
获取名称为key的有序集合中指定区间成员,默认按递增的顺序排序
zrange sset 0 100
获取名称为key的有序集合中指定区间成员的分数
zscore sset java
删除名称为key的有序集合中指定区间成员
zrem sset java
服务器管理
查看redis详细信息,服务器信息,客户端连接状态,内存使用情况,备份情况,集群情况,CPU使用情况
info
实时打印redis接受的命令,用于调试使用
monitor
异步保存数据到磁盘,默认会保存在redis目录下,文件后缀名为.rdb
save
返回当前数据库的 key 的数量
dbsize
删除所有数据库中的key
flushall
获取配置文件中的配置项的值
config get loglevel
修改配置文件中的参数的值,无需重启redis
config set maxmemory 1024mb
更多命令
以上只是列出了常用的crud命令,更多特性请查阅相关文档。
另外涉及高级部分的命令请参考redis高级部分,包括但不限制于发布订阅,事务相关,备份存储,集群等。