Key
常用命令:
- keys *:查询所有key
- exists key:判断某个key是否存在
- move key dbnum:从当前库移动到指定库
- expire key secone:为给定的key设置过期时间
- ttl key:查看还有多少秒过期,-1表示永不过期,-2表示已过期
- type key:查看你的key的数据类型
Redis字符串(String)
string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M
常用命令 | 含义 |
---|---|
set key | 设置指定 key 的值 |
get key | 获取指定 key 的值 |
del key | 删除指定 key 的值 |
append key value | 如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾 |
strlen key | 返回 key 所储存的字符串值的长度 |
Incr key | 将 key 中储存的数字值增一 |
decr key | 将 key 中储存的数字值减一 |
incrby key increment | 将 key 所储存的值加上给定的增量值(increment) |
decrby key increment | 将 key 所储存的值加上给定的减量值(increment) |
setex key second value | 设置带过期时间的key-value对 |
setnx key value | 只有在 key 不存在时设置 key 的值 |
getrange key start end | 获取指定区间范围内的值(0 -1表示所有)![]() |
setrange key offset value | setrange设置指定区间范围内的值![]() |
mget key1 key2… | 批量获取key值 |
mset key1 v1 key2 v2… | 批量设置key-value对 |
msetnx key1 v1 key2 v2 | 同时设置一个或多个 key-value 对,仅所有给定 key 都不存在时成功 |
getset key value | 先get旧值,再set新值 |
Redis列表(List)
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
它的底层实际是个链表。
常用命令 | 含义 |
---|---|
lpush key v1 v2… | 将一个或多个值插入到列表头部 |
rpush key v1 v2… | 将一个或多个值插入到列表尾部 |
lrange key start stop | 获取列表指定范围内的元素 |
lpop key | 移出并获取列表头部的第一个元素 |
rpop key | 移出并获取列表尾部的第一个元素 |
lindex key index | 通过下标从头部开始获取列表中的元素 |
llen key | 获取列表长度 |
lrem key count value | 移除列表元素:count数量,value被移除的值 |
ltrim key start stop | 截取指定范围的值后再赋值给key:start开始索引,stop结束索引 |
rpoplpush list1 list2 | 移除列表的最后一个元素,并将该元素添加到另一个列表并返回 |
lset key index value | 通过下标从插入元素到列表 |
linsert key before/after v1 v2… | 在list某个已有值的前后再添加具体值 |
Redis集合(Set)
Redis的Set是string类型的无序集合。它是通过HashTable实现实现的。
常用命令 | 含义 |
---|---|
sadd key v1 v2… | 向集合添加一个或多个成员 |
smembers key | 获取所有成员 |
sismember key value | 判断value元素是否是集合 key 的成员 |
scard key | 获取集合里面的元素个数 |
srem key value | 删除集合中元素 |
srandmember key | 随机出几个 |
spop key | 随机出栈 |
smove key1 key2 value | 把key1中的value值移动到key2 |
sdiff key1 key2 | 求key1和key2的差集 |
sinter key1 key2 | 求key1和key2的交集 |
sunion key1 key2 | 求key1和key2的并集 |
Redis哈希(Hash)
Redis hash 是一个键值对集合。
Redis hash是一个string类型的field和value的映射表,并且value值是一个键值对,hash特别适合用于存储对象。
常用命令 | 含义 |
---|---|
hset key field value | 将哈希表 key 中的字段 field 的值设为 value |
hget key field | 获取给定字段的值 |
hmset key field1 value1 field2 value2… | 同时将多个 field-value (域-值)对设置到哈希表 key 中 |
hmget key field1 field2… | 获取给定多个字段的值 |
hgetall key | 获取在哈希表中指定 key 的所有字段和值 |
hdel key field1 field2… | 删除一个或多个哈希表字段 |
hlen key | 获取哈希表中字段的数量 |
hexists key field | 查看哈希表 key 中,指定的字段是否存在 |
hkeys key | 获取所有哈希表中的字段 |
hvals key | 获取所有哈希表中的值 |
hincrby key field increment | 为哈希表 key 中的指定字段的整数值加上增量 increment |
hincrbyfloat key field increment | 为哈希表 key 中的指定字段的浮点数值加上增量 increment |
hsetnx key field value | 只有当field不存在时能成功设置field-value值 |
Redis有序集合Zset(sorted set)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的score变量。
redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数score却可以重复。
常用命令 | 含义 |
---|---|
zadd key score1 member1 score1 member1… | 向有序集合添加一个或多个成员,或者更新已存在成员的分数 |
zrange key startIndex stopIndex | 通过索引区间返回有序集合指定区间内的成员,0 -1为全部 |
zrangebyscore key startScore stopScore [withscores] | 通过score返回有序集合指定区间内的成员 |
zrem key member1 member2… | 删除一个或多个成员 |
zcard key | 获取有序集合的成员数量 |
zcount key min max | 分数值在 min 和 max 之间的成员的数量 |
zrank key member | 获取指定成员下标 |
zscore key member | 获取指定成员score值 |
zrevrank key member | 逆序获得下标值 |
zrevrange key startIndex stopIndex | 逆序获取成员 |
zrevrangebyscore key startScore stopScore | 逆序获取成员 |