一、通用命令
1)获取redis中所有key
keys *
2)删除一个或多个key
del key1 key2 ...
3)判断key是否存在
exists key
4)给key添加过期时间
expire key time
5)查看key剩余过期时间
ttl key
6) 查看redis内存情况
info memory
二、String类型
特点:值是 字符串
操作:
1)设置一个键值对
set key value
2)如果不存在value,则设置这个键值对
setnx key value
3)设置键值对的同时,指定过期时间(为expireTime秒)
setex key expireTime value
4)通过key获取value
get key
5)批量设置键值对
mset key1 value1 key2 value2 ...
6)批量获取value
mget key1 key2 ...
7)令key对应的value值加1(value必须是整数)
incr key
8)令key对应的value值加step(value必须是整数,step可以是负数)
incrby key step
9)令key对应的value值加step(value可以是整数,也可以是浮点数,step可以是负数)
incrbyfloat key step
10)令key对应的value值减1(value必须是整数)
decr key
11)令key对应的value值减step(value必须是整数)
decrby key step
三、List类型
特点:底层用 双向链表 实现,两端 添加、删除速度快
操作:
1)将系列元素一个一个向列表左侧插入
lpush key e1 e2 e3 ...
2)将最左侧元素弹出(弹出之后列表中就没有这个元素了)
lpop key
3)将系列元素一个一个向列表右侧插入
rpush key e1 e2 e3 ...
4)将最右侧元素弹出(弹出之后列表中就没有这个元素了)
rpop key
5)获取列表长度
llen key
6)设置指定下标的元素
lset key index element
7)获取指定下标的元素
lindex key index
8)获取指定下标范围(leftIndex<= i <=rightIndex)的数据,下标从0开始
lrange key leftIndex rightIndex
9)在指定的时间内(单位s)阻塞式等待一个列表的出现,如果有这个列表出现则删除,否则返回null
blpop key time
四、Set类型
特点:集合,对数据自动去重,即不存在重复数据
操作:
1)向集合中批量插入元素
sadd key e1 e2 ...
2)批量删除集合中的元素
srem key e1 e2 ...
3)获取集合中元素的数量
scard key
4)判断集合中是否包含指定元素
sismember key e
5)获取集合中的所有元素
smembers key
6)求批量集合的交集
sinter key1 key2 ...
7)求批量集合的并集
sunion key1 key2 ...
8)求第一个集合与其他集合的差集
sdiff key1 key2 ...
五、SortedSet类型
特点:有序集合,对数据自动去重,另外每一个数据都有与之对应的分数,用来作为排序的依据
操作:
1)向有序集合中批量添加数据并指定他们的分数
zadd key score1 value1 score2 value2 ...
2)批量删除元素
zrem key e1 e2 ...
3)获取元素分数
zscore key element
4)令元素的分数增加step
zincrby key step element
5)获取有序集合中元素的数量
zcard key
6)获取元素排名(按照分数从小到大排序,排名从0开始,0、1、2 . . .)
zrank key element
7)获取有序集合中指定排名范围内的元素
zrange key minRank maxRank
8)获取指定分数范围内,元素的数量
zcount key minScore maxScore
9)获取有序集合中指定分数范围内的所有元素(按照分数从小到大排序)
zrangebyscore key minScore maxScore
以上命令默认按照分数score进行升序排序,若需要 降序排序只需要在z后面加上rev 即可,如 zrank -> zrevrank
六、Hash类型
特点:数据为 field -> value 的映射,用法相当于Java中的HashMap,特别适合存储对象
操作:
1)向哈希集合(key)中添加一个field字段,值为value
hset key field value
2)获取哈希集合中的指定字段
hget key field
3)设置多个字段
hmset key field1 value1 field2 value2 ...
4)获取多个字段
hmget key field1 field2 ...
5)获取哈希集合中所有的字段field与对应值value
hgetall key
6)如果哈希集合中不存在这个字段,则设置;否则,不设置
hsetnx key field value
7)获取哈希集合中所有的字段field
hkeys key
8)获取哈希集合中所有的值value
hvals key
9)令哈希集合中字段field对应的value值增加step
hincrby key field step