redis学习——基础指令

1,543 阅读4分钟

其他更多java基础文章:
java基础学习(目录)


学习资料:
redis指令目录
redis学习笔记

通用命令

命令 描述 备注
keys [pattern] 遍历所有符合的key keys命令一般不在生产环境使用
dbsize 计算key的总数
exists key 检查key是否存在 存在返回1,不存在返回0
del key 删除指定key-value
expire key seconds key在seconds秒后过期
ttl key 查看key剩余的过期时间 -1表示key存在,并且没有过期时间
persist key 去掉key的过期时间
type key 返回key的类型 string,hash,list,set,zset,none六种

字符串

命令 描述 备注
get key 获取对应的value
set key value 设置key-value 不管key是否存在,都设置
setnx key value 设置key-value key不存在,才设置
set key value xx 设置key-value key存在,才设置
del key 删除key-value
incr key自增1,如果key不存在,自增后get(key)=1
decr key key自减1,如果key不存在,自增后get(key)=-1
incrby key k key自增k,如果key不存在,自增后get(key)=k
decrby key k key自减k,如果key不存在,自增后get(key)=-k
mget key1 key2 key3... 批量获取key,原子操作
mset key1 value1 key2 value2 ... 批量设置key-value
getset key newvalue set key newvalue并返回旧的value
append key value 将value追加到旧的value后
strlen key 返回字符串的长度 注意中文
incrbyfloat key 3.5 增加key对应的值3.5
getrange key start end 获取字符串指定下标所有的值
setrange key index value 设置指定下标所有对应的值

Hash

命令 描述 备注
hget key field 获取hash key对应的field的value
hset key field value 设置hash key对应的field的value
hdel key field 删除hash key对应field的value
hexists key field 判断hash key是否有field
hlen key 获取hash key field的数量
hmget key field1 field2... 批量获取hash key的一批field对应的值
hmset key field1 value1 field2 value2... 批量设置hash key的一批field value
hgetall key 返回hash key对应所有的field和value 小心使用,field多的时候执行速度会很慢
hvals key 返回hash key对应所有field的value
hkeys key 返回hash key对应所有的e
hsetnx key field value 设置hash key对应的field的value 如果field已经存在,则失败
hincrby key field intCounter hash key对应的field的value自增intCounter
hincrbyfloat key field float 浮点数版

list

命令 描述 备注
rpush key value1 value2... 从列表右端插入值
lpush key value1 value2... 从列表左端插入值
linsert key before\after value newvalue 在list指定的value值前\后插入newvalue 如果多个相同value值,只会在第一个value处插入
lpop key 从列表左侧弹出一个item
rpop key 从列表右侧弹出一个item
lrem key count value 根据count值,从列表中删除所有value相等的项 1. count>0,从左到右,删除最多count个value相等的项。
2.count<0,从右到左,删除最多count个value相等的项。
3.count=0,删除所有value相等的项。
ltrim key start end 按照索引范围修剪列表
lrange key start end 获取列表指定索引范围所有item 包含end,0\正数从左边数,负数从右边数
lindex key index 获取列表指定索引的item
llen key 获取列表长度
lset key index newvalue 设置列表指定索引值为newvalue
blpop key timeout lpop阻塞版本,timeout是阻塞超时时间,timeout=0为永远不阻塞
brpop 同上

tips

  1. LPUSH + LPOP = Stack(栈)
  2. LPUSH +RPOP = Queue(队列)
  3. LPUSH + LTRIM = Capped Collection(固定集合)
  4. LPUSH +BRPOP = Message Queue(消息队列)

Set

命令 描述 备注
sadd key element 向集合key添加element 如果element已经存在,添加失败
srem key element 将集合key中的element移除掉
scard key 计算集合大小
sismember key element 判断element是否在集合key中
srandmember key count 从集合key中随机挑count个元素
spop key 从集合key中随机弹出一个元素
smembers key 获取集合key中所有元素 小心使用
sdiff key1 key2 差集
sinter key1 key2 交集
sunion key1 key2 并集
sdiff\sinter\sunion + store destkey 将差集\交集\并集的结果保存在destkey中

ZSet(有序集合)

结构

命令

命令 描述 备注
zadd key score element(可以是多对) 添加score和element score可以重复,element不可重复
zrem key element 删除元素
zscore key element 返回元素的分数
zincrby key increScore element 增加或减少元素的分数
zcard key 返回元素的总个数
zrange key start end [WITHSCORES] 返回指定索引范围内的升序元素 WITHSCORES是否要返回分数
zrangebyscore key minScore maxScore [WITHSCORES] 返回指定分数范围内的升序元素
zcount key minScore maxScore 返回有序集合内在指定分数范围内的个数
zremrangebyrank key start end 删除指定排名内的升序元素
zremrangebyscore key minScore maxScore 删除指定分数内的升序元素
zrank key element 获取某个元素在集合key中的排名(从小到大)
zrevrank key element 获取某个元素在集合key中的排名(从大到小)
ZINTERSTORE destination numkeys [WEIGHTS weight weight...] [AGGREGATE SUM\ MIN\MAX] 对给定的有序集合执行类似于集合的交集运算 www.maiziedu.com/wiki/redis/…