Redis中的常用操作命令
以下连接是 Redis Command Reference 和 Redis Documentation 的中文翻译文档, 阅读这个文档可以帮助你了解 Redis 命令的具体使用方法, 并学会如何使用 Redis 的事务、持久化、复制、Sentinel、集群等功能
redis使用手册
一、关于key的操作命令
查看数据库实例中的key:
- keys [pattern]
pattern可以是具体的字符串也可以使用通配符
例:
查看当前数据库实例中的所有key
keys *
查看当前数据库实例中的以h开头的key
keys h*
查看当前数据库实例中的以h开头以o结尾并且中间只有一个字符的key
keys h?o
关于通配符:
- ?匹配一个字符
- * 匹配任意个字符
- [ ] 匹配[ ]任意一个字符
判断数据库实例中是否存在key:
- exist key
- exist key [key key …]
移动key到指定数据库实例:
- move key index
设置key的最大生存时间
- expire key second
查看key的剩余生存时间
- ttl key
返回值:-2代表key不存在,-1代表没有设置生存使时间
查看key的数据类型
- type key
重命名key
- rename key newkey
删除key
- del key
二、关于string类型的数据的操作命令
string类型的数据是单个key对应单个value
将string类型的数据设置到redis中
- set key value
- mset key1 value1 [key2 value2 …] (批量设置)
- setnx key value(只有key不存在时才能设置成功)
- setex key second value(设置的同时设置最大生存时间)
- msetnx key1 value1 [key2 value2 …] (只要有一个key存在就放弃设置)
获取string类型的数据
- get key
- mget key1 [key2 key3 …](批量获取)
将字符串追加到指定key中
- append key value
获取指定key的字符串长度
- strlen key
将指定key的字符串数值进行加一运算(key所表示的value必须是数值)
- incr key
- decr key(减一)
将指定key的字符串数值进行加x运算
- incrby key x
- decrby key x(减x)
获取指定key的指定下标区间的子字符串
- getrange key startIndex endIndex
正下标表示从左到右从0开始,负小标表示从右向左从-1开始
例:
getrange key 0 -1 全部字符串
修改指定key的子字符串用value覆盖从下标startIndex开始的字符串
- setrange key startIndex value
三、关于list类型的数据的操作命令
list类型的数据是单个key对应多个value且value有序
将一个或多个元素依次插入列表的表头
- lpush key value1 [value2 value3…]
- rpush key value1 [value2 value3…] (插入到表尾)
例:
lpush key a b c 结果>> c b a
rpush key a b c 结果>> a b c
获取指定列表中指定下标区间的元素
- lrange key startIndex endIndex
从指定列表中移除表头元素并返回
- lpop key
- rpop key (表尾)
获取指定列表的指定下标元素
- lindex key index
获取指定列表的长度
- llen key
移除列表中与value相同的数据
- lrem key count value
count>0从左侧移除count个元素
count<0从右侧移除count个元素
count=0移除所有与value相同元素
返回截取指定下标区间组成新列表
- ltrim key startIndex endIndex
将指定列表的指定下标元素设置指定值
- lset key index value
将value插入到指定列表中位于pivot(元素)之前的位置
- linsert key before pivot value
- linsert key after pivot value (之后)
四、关于set类型的数据的操作命令
set类型的数据是单个key对应多个无序value 元素不重复
将一个或多个元素添加到集合中
- sadd key member1 [member2 …]
查看集合中的元素
- smembers key
判断元素在集合中是否存在
- sismember key member (1存在 0不存在)
获取集合中元素的个数
- scard key
随机获取集合中count个元素
- srandmember count key(count>0 不重复 count<0可能重复)
- srandmember key (获取一个)
从指定集合中随机移除count个元素
- spop key count
将指定元素移动到另外一个集合
- smove key1 key2 member
返回一个集合中有而其他集合中都没有的元素的集合(差集)
- sdiff key1 key2 key3 …
获取所有集合中都有元素组成的集合(交集)
- sinter key1 key2 key3 …
获取所有集合中所有元素组成的集合(并集)
- sunion key1 key2 key3 …
五、关于hash类型的数据的操作命令
hash类型的数据是单个key对应多个field-value对
将一个或多个field-value设置到指定哈希表中
- hset key field value
- hmset key field1 value1 [field2 value2…](批量设置)
- hsetnx key field value (当key-field不存在才设置)
获取指定哈希表中指定field的值
- hget key field
- hmget key field1 [field2 …] (批量获取)
从指定哈希表中删除一个或多个field
- hdel key field1 [field2 …]
获取指定哈希表中field的个数
- hlen key
判断指定哈希表中是否存在某个field
- hexists key field
获取指定哈希表中所有的field和value
- hgetall key
获取指定哈希表中所有的field
- hkeys key
获取指定哈希表中所有的value
- hvals key
对指定哈希表的指定field进行加法运算
- hincrby key field int (整数)
- hincrbyfloat key field float (小数)
六、关于zset类型的数据的操作命令
zset类型的数据是单个key对应多个有序value(根据参考值score排序,zset有下标不重复)
将一个或多个元素及其score值设置到有序集合中
- zadd key score1 member1 [score2 member2 …] (score必须是数值)
获取指定有序集合中指定下标区间的元素
- zrange key startIndex endIndex [withscore] (加上withscore显示score)
获取指定有序集合中指定score区间的元素
- zrangebyscore key min max [withscore]
删除指定有序集合中一个或多个元素
- zrem key member1 [member2 …]
获取指定有序集合中所有元素个个数
- zcard key
获取指定有序集合中指定score区间元素的个数
- zcount key min max
获取指定有序集合中指定元素的排名
- zrank key member(从小到大)
- zrevrank key member(从大到小)
获取指定有序集合中指定元素的score
- zscore key member