Redis 常用命令
1 Redis安装、链接
以我所用的系统(deepin)为例
安装Redis:
sudo apt update
sudo apt install redis-server
启动Redis:
#使用默认配置启动
➜ ~ redis-server
#使用配置文件启动,访问配置文件有的需要管理员权限,要在命令前加sudo
➜ ~ redis-server /etc/redis/redis.conf
修改/etc/redis/redis.conf文件将里面的daemonize no 改成 yes,让服务在后台启动
链接Redis:
➜ ~ redis-cli #链接本地默认端口的Reids
➜ ~ redis-cli -h host -p port -a password #链接远程服务器
连接redis 服务并执行 PING 命令,该命令用于检测 redis 服务是否启动。
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>
切换数据库:
Redis默认16个数据库,可以再配置文件修改。切换数据库的命令:
127.0.0.1:6379> select index # index从0开始
关闭Redis:
单实例关闭:
➜ ~ redis-cli shutdown
指定端口关闭:
➜ ~ redis-cli -p 6379 shutdown
2 key命令
参考:https://baijiahao.baidu.com/s?id=1623008109307725071&wfr=spider&for=pc
**keys:**查询当前库的键
127.0.0.1:6379> keys pattern
keys * :查询当前库的所有键
**exists:**判断某个键是否存在
127.0.0.1:6379> exists key [key ...]
**type:**查看键的类型
127.0.0.1:6379> type key
del:删除某个键
127.0.0.1:6379> del key [key ...]
**expire:**为键值设置过期时间,单位秒
127.0.0.1:6379> expire key seconds
ttl: 查看还有多少秒过期,-1表示永不过期 (-2表示已过期)
127.0.0.1:6379> ttl key
**dbsize:**查看当前数据库的key的数量
127.0.0.1:6379> dbsize
**Flushdb:**清空当前库
127.0.0.1:6379> Flushdb
**Flushall:**清空当前库
127.0.0.1:6379> Flushall
3 五大数据类型命令
3.1 String命令
get: 查询对应键值
127.0.0.1:6379> get key
set: 添加键值对
127.0.0.1:6379> set key value [EX seconds] [PX milliseconds] [NX|XX]
append: 将给定的 追加到原值的末尾
127.0.0.1:6379> append key value
strlen: 获得值的长度
127.0.0.1:6379> strlen key
setnx: 只有在 key 不存在时设置 key 的值
127.0.0.1:6379> setnx key value
incr:
将 key 中储存的数字值增1
只能对数字值操作,如果为空,新增值为1
127.0.0.1:6379> incr key
decr:
将 key 中储存的数字值减1
只能对数字值操作,如果为空,新增值为-1
127.0.0.1:6379> decr key
incrby / decrby:
将 key 中储存的数字值增减。自定义步长。
127.0.0.1:6379> incrby key increment
**mset:**同时设置一个或多个 key-value对
127.0.0.1:6379> mset key value [key value ...]
**mget:**同时获取一个或多个 value
127.0.0.1:6379> mget key [key ...]
**msetnx:**同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
127.0.0.1:6379> msetnx key value [key value ...]
**getrange :**获得值的范围,类似java中的substring
127.0.0.1:6379> getrange key start end
**setrange <起始位置>:**用覆写所储存的字符串值, 从<起始位置>开始。
127.0.0.1:6379> setrange key offset value
**setex :**设置键值的同时,设置过期时间,单位秒。
127.0.0.1:6379> setex key seconds value
**getset:**以新换旧,设置了新值同时获得旧值。
127.0.0.1:6379> getset key value
3.2 List命令
**lpush/rpush:**从左边/右边插入一个或多个值。
127.0.0.1:6379> lpush key value [value ...]
**lpop/rpop:**从左边/右边吐出一个值。
127.0.0.1:6379> lpop key
**rpoplpush:**从列表右边吐出一个值,插到列表左边。
127.0.0.1:6379> rpoplpush source destination
**lrange:**按照索引下标获得元素(从左到右)
127.0.0.1:6379> lrange key start stop
**lindex:**按照索引下标获得元素(从左到右)
127.0.0.1:6379> lindex key index
**llen:**获得列表长度
127.0.0.1:6379> llen key
**linsert before:**在的后面插入 插入值
127.0.0.1:6379> linsert before BEFORE|AFTER pivot value
**lrem:**从左边删除n个value(从左到右)
127.0.0.1:6379> lrem key count value
3.3 set命令
sadd: 一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。
127.0.0.1:6379> sadd key member [member ...]
smembers: 取出该集合的所有值。
127.0.0.1:6379> smembers key
sismember: 判断集合是否为含有该值,有返回1,没有返回0
127.0.0.1:6379> sismember key member
**scard:**返回该集合的元素个数。
127.0.0.1:6379> scard key
srem : 删除集合中的某个元素。
127.0.0.1:6379> srem key member [member ...]
spop: 随机从该集合中吐出一个值。
127.0.0.1:6379> spop key [count]
srandmember: 随机从该集合中取出n个值,不会从集合中删除
127.0.0.1:6379> srandmember key [count]
**sinter:**返回两个集合的交集元素。
127.0.0.1:6379> sinter key [key ...]
**sunion:**返回两个集合的并集元素。
127.0.0.1:6379> sunion key [key ...]
**sdiff:**返回两个集合的差集元素。
127.0.0.1:6379> sdiff key [key ...]
3.4 hash命令
**hset:**给集合中的 键赋值
127.0.0.1:6379> hset key field value
**hget:**从集合取出value
127.0.0.1:6379> hget key field
**hmset :**批量设置hash的值
127.0.0.1:6379> hmset key field value [field value ...]
hexists: 查看哈希表 key 中,给定域 field 是否存在。
127.0.0.1:6379> hexists key field
**hkeys:**列出该hash集合的所有field
127.0.0.1:6379> hkeys key
hvals: 列出该hash集合的所有value
127.0.0.1:6379> hvals key
hincrby: 为哈希表 key 中的域 field 的值加上增量 increment
127.0.0.1:6379> hincrby key field increment
hsetnx: 将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在 .
127.0.0.1:6379> hsetnx key field value
3.5 zset命令
zadd : 将一个或多个 member 元素及其 score 值加入到有序集 key 当中。
127.0.0.1:6379> zadd key [NX|XX] [CH] [INCR] score member [score member ...]
zrange : 返回有序集 key 中,下标在 之间的元素
带WITHSCORES,可以让分数一起和值返回到结果集。
127.0.0.1:6379> zrange key start stop [WITHSCORES]
zrangebyscore: 返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。
# 有序集成员按 score 值递增(从小到大)次序排列。
127.0.0.1:6379> zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
# 有序集成员按 score 值递增(从大到小)次序排列。
127.0.0.1:6379> zrangebyscore key max min [WITHSCORES] [LIMIT offset count]
zincrby: 为元素的score加上增量
127.0.0.1:6379> zincrby key increment member
zrem: 删除该集合下,指定值的元素
127.0.0.1:6379> zrem key member [member ...]
zcount: 统计该集合,分数区间内的元素个数
127.0.0.1:6379> zcount key min max
zrank: 返回该值在集合中的排名,从0开始。
127.0.0.1:6379> zrank key member