redis常用命令总结

通用命令:

keys * [pattern] ---  遍历当前reids所有的key O(n)

dbsize  --- 计算key的总数 O(1)

exists [key] --- 判断key是否存在 O(1)

del [key...] --- 删除一个或多个指定的key O(1)

expire key [seconds] --- key在seconds秒后过期 O(1)

ttl [key] --- 查看key剩余的过期时间 O(1)

persist [key] --- 去掉key的过期时间 O(1)

type [key] --- 返回key的数据结构类型 O(1)

String相关命令:

get [key] --- 获取key对应的value O(1)

mget [key1 ke2 ...] --- 批量获取key,原子操作 O(n)

getset [key newValue] --- 设置key新值为newValue并返回旧的value O(1)

getrange [key start end] --- 获取字符串指定下标所有的值 O(1)

set [key value] --- 设置key-value O(1)

setrange [key index value] --- 设置指定下标所有对应的值 O(1)

mset [key1 value1 key2 value2 ...] --- 批量设置key-value O(n)

append [key value] --- 将value追加到旧的value O(1)

setnx [key value] --- key不存在,才设置 O(1)

set [key value xx] --- key存在,才设置 O(1)

setex [key value seconds] --- 设置key,同时设置过期时间 O(1)

incr [key] --- key自增1,如果key不存在,自增后get(key)=1 O(1)

decr [key] --- key自减1,如果key不存在,自减后get(key)=-1 O(1)

incrby [key k] --- key自增k,如果key不存在,自增后get(key)=k O(1)

incrbyfloat [key 3.5] --- 增加key对应的float值3.5 如需减法,传负值即可 O(1)

decrby [key k] --- key自减k,如果key不存在,自减后get(key)=-k O(1)

strlen [key] --- 返回字符串的长度(注意中文占用字节数的问题)O(1)

Hash相关命令:

hget [key field] --- 获取hash key对应的field的value O(1)

hset [key field value] --- 设置hash key对应的field的value O(1)

hdel [key field] --- 删除hash key对应的field的value O(1)

hexists [key field] --- 判断hash key 是否有field O(1)

hlen [key] --- 获取hash key field的数量,redis内部维护了这个值的计数,而不是每次遍历,效率高 O(1)

hmget [key field1 field2 ...] --- 批量获取hash key的一批field对应的值 O(n)

hmset [key field1 field2 ...] --- 批量设置hash key的一批field的value O(n)

hincrby [key field count] --- 设置hash key的field字段自增count O(1)

hincrbyfloat [key field float] --- hincrby的浮点数版 O(1)

hgetall [key] --- 返回hash key对应所有的field和value O(n)

hvals [key] --- 返回hash key对应所有field的value O(n)

hkeys [key] --- 返回hash key对应的所有field O(n)

hsetnx [key field value] --- 设置hash key对应的field的value 如过field存在,则失败 O(1)

List相关命令:

rpush [key value1 value2...valueN] --- 从列表右端(后端)插入值 (1-N个) O(1~n)

lpush [key value1 value2...valueN] --- 从列表左侧(头部)插入值 (1-N个) O(1~n)

linsert [key before|after value newValue] --- 在list指定的值(前 | 后)插入newValue,需要遍历 O(n)

lpop [key] --- 从列表左侧弹出一个item O(1)

rpop [key] --- 从列表右侧弹出一个item O(1)

lrem [key count value] --- 根据count值,从列表中删除所有value相等的项 O(n)

(1) count > 0,从左到右,删除最多count个与value相等的项

(2) count < 0,从右到左,删除最多count个与value相等的项

(3) count = 0,删除list中所有与value相等的项

ltrim [key start end] --- 按照索引范围修剪列表 O(n)

lrange [key start end] --- 获取list指定索引范围的所有item,end为-1时,取到末尾 O(n)

lindex [key index] --- 获取list指定索引的item,index为-1,取最后一个item O(n)

llen [key] --- 获取list长度,内部优化值 O(1)

lset [key index newValue] --- 设置list指定索引值为newValue O(n)

blpop [key timeout] --- lpop阻塞版本,timeout是阻塞超时时间,timeout=0为永不阻塞 O(1)

brpop [key timeout] --- rpop阻塞版本,timeout是阻塞超时时间,timeout=0为永不阻塞 O(1)

Set相关命令:

sadd [key element] --- 向集合key添加element(如果element存在,添加失败) O(1)

srem [key element] --- 将集合key中的element移除掉 O(1)

scard [key] --- 计算集合大小 O(1)

sismember [key value] --- 判断value是否在集合中

srandmember [key count] --- 从集合中随机挑count个元素,只是选取,不会提出

spop [key] --- 从集合中随机弹出一个元素

smembers [key] --- 获取集合所有元素,返回结果无序,如果集合大小心使用

sdiff [key1 key2] --- 取两个集合的差集

sinter [key1 key2] --- 取两个集合的交集

sunion [key1 key2] --- 取两个集合的并集

sdiff | sinter | sunion + store destkey --- 将差集、交集、并集结果保存到destkey中

Zset相关命令:

zadd [key score element(可以是多对)] --- 向集合中添加score和element O(logN)

zrem [key element(可以是多个)] --- 删除集合中元素 O(1)

zscore [key element] --- 返回改元素的分数 O(1)

zincrby [key increScore element] --- 增加或减少元素分数 O(1)

zcard [key] --- 返回元素的总个数 O(1)

zrank [key element] --- 返回element在集合中的排名,从小到大排

zrevrank [key element] --- 返回element在集合中的排名,从大到小排

zrange [key start end withscores] --- 获取指定排名范围的的元素和它的分数,可以不带withscores,即不打印分数 O(log(n)+m)

zrevrange [key start end withscores] --- zrange的倒序版本

zrangebyscore [key minScore maxScore withscores] --- 返回指定分数范围的升序元素 O(log(n)+m)

zrevrangebyscore [key minScore maxScore withscores] --- zrangebyscore降序版本

zcount [key minScore maxScore] --- 返回有序集合指定分数范围的元素个数 O(log(n)+m)

zremrangebyrank [key start end] --- 删除指定排名内的升序元素 O(log(n)+m)

zremrangebyscore [key minScore maxScore] --- 删除指定分数内的升序元素 O(log(n)+m)

zinterstore --- 取两集合交集并存储

zunionstore --- 取两集合并集并存储

Bitmap相关命令:

setbit [key offset value] --- 给位图指定索引设置值(0或1)注意offset偏移量设置,可能有较大耗时

getbit [key offset] --- 获取位图指定索引的值

bitcount [key start end] --- 获取位图指定范围内(start到end,单位为字节,如果不指定就是获取全部)值为1的个数

bitop [op destkey key...] --- 做多个bitmap的and、or、not、xor操作,并将结果保存在destkey中

bitpos [key targetBit start end] --- 计算位图指定范围(start到end,单位为字节,如果不指定就是获取全部)第一个偏移量对应的值等于targetBit(0或1)的位置

HyperLoglog相关命令:

pfadd [key element...] --- 向hyperloglog添加元素

pfcount [key...] --- 计算hyperloglog的独立总数

pfmerge [destkey sourcekey...] --- 合并多个sourcekey到destkey

GEO相关命令(redis3.2版本):

geoadd [key longitude latitude member ...] --- 增加一个或多个地理位置信息

geopos [key member...] --- 获取一个或多个member的经纬度

geodist [key member1 member2 unit] --- 按某个单位(unit:m、km、mi、ft)获取两个地理位置的距离

georadius --- 功能参数太多,使用查api

geo说明:

type geoKey = zset 

没有删除api:zrem key member

转载于:https://my.oschina.net/u/3371837/blog/1649034

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值