redis的命令使用
大部分截图来自官网 参考官网
redis中文官网链接
keys 命令组
- keys 查找所有符合给定模式pattern(正则表达式)的 key 。
支持的正则表达模式:
h?llo 匹配 hello, hallo 和 hxllo
h*llo 匹配 hllo 和 heeeello
h[ae]llo 匹配 hello 和 hallo, 但是不匹配 hillo
h[^e]llo 匹配 hallo, hbllo, … 但是不匹配 hello
h[a-b]llo 匹配 hallo 和 hbllo
示例
- del 删除key
127.0.0.1:6379> set key1 value1
OK
127.0.0.1:6379> set key2 value2
OK
127.0.0.1:6379> keys *
1) "key2"
2) "key1"
示例
-
exists
存在返回1 不存在返回0
-
expire 设置过期时间
-
persist 删除过期时间
-
ttl 查看key的剩余时间
-
move 移动key 到db
-
rename 重命名key
-
scan
迭代当前db中的key
返回的第二个元素是一个数组
-
sort 排序
返回或存储key的list、 set 或sorted set 中的元素。默认是按照数值类型排序的,并且按照两个元素的双精度浮点数类型值进行比较
-
type
查看key的类型
- wait
strings (字符串)
-
set
set c d ex px 可添加key的过期时间
-
get
-
append
如果 key 已经存在,并且值为字符串,那么这个命令会把 value 追加到原来值(value)的结尾。 如果 key 不存在,那么它将首先创建一个空字符串的key,再执行追加操作,这种情况 APPEND 将类似于 SET 操作。
-
decr 自减1
-decrby
decrby a 5 a自减5
-
getrange 字符串切片
- getset
GETSET可以和INCR一起使用实现支持重置的计数功能。举个例子:每当有事件发生的时候,一段程序都会调用INCR给key mycounter加1,但是有时我们需要获取计数器的值,并且自动将其重置为0。这可以通过GETSET mycounter “0”来实现:
- incr
- incrby
- incrbyflota
-
mget
获取多个value
-
mset
设置多个value
-
msetnx
msetnx 是原子的
-
setrange
这个命令的作用是覆盖key对应的string的一部分,从指定的offset处开始,覆盖value的长度。如果offset比当前key对应string还要长,那这个string后面就补0以达到offset。
- strlen
返回字符串的长度
list 数组(列表)
- blpop
从left 弹出元素如果为list为空则阻塞
- brpop
和 blpop 类似
- lindex 获取指定下标元素
- linsert 从左边插入一个元素
- llen 获取list的长度
-
lpop
弹出左边的第一个元素 -
rpop
弹出右边第一个元素
-
lpush 向一list中的左边插入元素,存在则继续插入,不存在则创建插入
- lrange 获取指定范围内下标的元素
- lrem 删除list中的元素
- lset 修改指定下标的元素
- ltrim 保留指定范围下标的元素
- rpoplpush
RPOPLPUSH mylist myotherlist
弹出 mylist中的元素 insert into myotherlist 中
哈希
- hdel 从哈希集中移除指定域
-
hexists 判断指定的field 是否存在
-
hget 从哈希集中获取指定field关联的value
- hgetall 获取哈希集中的 field和value
- hincrby 自增
-
hkeys 获取哈希集中的所有 field
-
hmget 获取多个field 的value
-
hscan 迭代
-
hstrlen
获取指定 field 的value长度
-
hvals
获取哈希集中所有 field 的value
set 集合
集合是不可重复的
- sadd
- scard 返回集合数量
- sdiff 返回差集
- sinter 返回交集
- sismember 查看成员是否在集合中
1 在
0 不在
- smember 查看集合中的所有元素
- smove 移动一个成员到另一个集合
- spop 删除集合中的一个元素
- srem 删除集合中的指定元素
有序集合 sorted set
- zadd
参数
zadd 集合名字 分数score value
- zcard 返回有序集合的元素个数
- zrange 获取指定范围的下标元素
根据分数排序
- zpopmax
删除分数最大的
- zpopmin
删除分数最小的
- zrangebyscore
获取指定范围分数的 value
- zrank 返回指定元素在 zset 中的排名
- zrem 删除指定元素
-
zrevrange
按照score 的大小 降序排列
-
zrevrank
- zscore 返回指定元素的 分数
connection 命令组
- echo
- ping
- select 选择db
db 数量可以再配置文件中修改
transaction 事务
-
multi
事务的开始 -
exec
执行 事务中的 redis 命令 -
watch
监听一个key
如果该 key的value 变化了 则事务终止
- discard
放弃事务
pub/sub 发布订阅
- publish 发布消息
格式
publish channel message - subscirbe 定义频道
格式
subscribe channel
- psubscrive news.*
模式订阅
监听 news. 开头的频道消息
server 命令组
-
bgsave
将db数据保存到磁盘 -
client kill
关闭一个链接
CLIENT KILL addr:port
-
client list
-
dbsize
-
flushall
清空所有db的key -
flushdb
清空当前db 的key -
info
查看当前redis服务的信息 主从,集群 哨兵等
-
lastsave
上次db保存的时间戳 -
role
返回redis 当前的角色 -
save
持久化
SAVE 命令执行一个同步操作,以RDB文件的方式保存所有数据的快照 很少在生产环境直接使用SAVE 命令,因为它会阻塞所有的客户端的请求,可以使用BGSAVE 命令代替. 如果在BGSAVE命令的保存数据的子进程发生错误的时,用 SAVE命令保存最新的数据是最后的手段,
-
shutdown
关闭当前客户端的链接 -
slaveof
给当前的服务器指定一个master,当前服务器成为master的slave
对一个从属服务器执行命令 SLAVEOF NO ONE 将使得这个从属服务器关闭复制功能,并从从属服务器转变回主服务器,原来同步所得的数据集不会被丢弃。 -
slowlog get