redis稍微高级一点的操作

字符串

字符串可以存三种类型的值:字节串,整数,浮点数

redis中自增命令和自减命令

命令 用例和描述
incr incr key-name 将键存储的值加1
desc desc key-name 将键存储的值减1
incrby incrby key-name amount 加上amount数
descby descby key-name amount 减去amount数
incrbyfloat incrbyfloat key-name amount 加上浮点数amount

如果用户对不存在的键或者保存了空串的键执行自增或自减,那么在执行时会将这个键当做0处理。
如果用户尝试对一个值无法解释成整数或者浮点数的字符串执行自增或自减操作,那么redis会返回一个错误。

供redis处理字符串和二进制位的命令

命令 用例和描述
append append key value 将value值追加到key存储的值后面
getrange getrange key start end 或者从start到end的、范围内的字符组成,【闭区间】
setrange setrange key offset value 从offset偏移量开始得值设置为value
getbit getbit key offset 将字符串看做是二进制位串
setbit setbit key offset value 同上
bitcount bitcount key [start end] 统计二进制位串里为1的位的数量
bitop bitop operation dest-key key-name [key-name …] 对一个或多个二进制位串执行包括并(AND),或(OR),异或(XOR),非(NOT)在内的任意一种按位操作(bitwise operation)。并将计算的结果保存在dest-key键里

列表

一些常用的列表命令

命令 用例和描述
rpush rpush key value [value …] 从右端推入
lpush lpush key value [value …] 从左端推入
rpop rpop key 从右端弹出
lpop lpop key 从左端弹出
lindex lindex key offset 返回offset偏移量处的元素
lrange lrange key start end 返回start和end之间的元素,【闭区间】
ltrim ltrim key start end 对列表进行修剪,只保留start偏移量到end偏移量范围内的元素,包括start,end也会被保留

阻塞式列表弹出和列表之间移动

命令 用例和描述
blpop blpop key [key …] timeout 从第一个非空列表中弹出左端的元素,或者在timeout秒之内阻塞并等待可弹出的元素,【最多只弹出一个元素】
brpop brpop key [key …] timeout 同上
rpoplpush rpoplpush source dest 从source的右端弹出元素,并把这个元素推入dest的左端
brpoplpush brpoplpush source dest timeout 同上,如果source为空,则在timeout秒内阻塞并等待课弹出元素的出现

集合

一些常用命令

命令 用例和描述
sadd sadd key item [item …] 增加,不解释
srem srem key item [item …] 删除,不解释
sismember sismember key item 检查item是否存在于key中
scard scard key 返回集合的元素的数量
smembers smembers key 返回集合的所有元素
srandmember srandmember key [count] 从集合中随机的返回一个或多个元素【count的绝对值】。当count为正数时,命令返回的随机元素不会重复;当count为负数时,返回的随机元素可能会出现重复
spop spop key 随机的移除一个元素,并返回这个元素
smove smove source dest item 如果source包含item,那么从source中删除,并将这个元素加入到dest中;如果item被成功移除,返回,否则返回0

用于组合和处理多个集合的命令

命令 用例和描述
sdiff sdiff key [key ..] 返回那些存在于第一个集合,但不存在于其他集合中的元素【差集运算】
sdiffstore sdiffstore dest-key key [key …] 同上,并把结果存储在dest-key中
sinter sinter key [key …] 返回那些同时存在于所有集合中的元素【交集运算】
sinterstore sinterstore dest-key key [key …] 不解释了哈
sunion sunion key [key …] 返回那些至少存在于一个集合中的元素【并集运算】
sunionstore sunionstore dest-key key [key …] 不解释

散列hash

命令 用例和描述
hmget hmget key-name key [key …] 从散列中取出多个键的值,hget的多参数版本
hmset hmset key-name key value [key value …] 同时设置多个键值对,hset的多参数版本
hdel hdel key-name key [key …] 同时删除多个键值对,返回成功删除的键值对数量
hlen hlen key-name 返回散列包含的键值对的数量
hexists hexists key-name key 检查是否存在于散列中
hkeys hkeys key-name 返回所有键
hvals hvals key-name 返回所有值
hgetall hgetall key-name 返回所有键值对
hincrby hincrby key-name key incement 将key保存的值加上increment
hincrbyfloat nincrbyfloat key-name key increment 不解释

有序集合zset

基本操作

命令 用例和描述
zadd zadd key-name score member [score member …]
zrem zrem key-name member [member …]
zcard zcard key-name 返回成员数量
zincrby zincrby key-name incrment member 为member成员的分值加上increment
zcount zcount key-name min max 返回分值介于min和max之间的成员数量
zrank zrank key-name member 返回成员的排名
zscore zscore key-name member 返回成员的分值
zrange zrange key-name start stop [withscores] 返回排名介于start和stop之间的成员,[withscores]意味着成员的呢分组也一起返回

有序集合的范围型数据获取和删除命令,以及并集命令和交集命令

命令 用例和描述
zrevrank zrevrank key-name member 返回排名,从大到小排序
zrevrange zrevrange key-name start stop [withscore] 返回排名介于start和stop之间的成员,从大到小排序
zrangebyscore zrangebyscore key-name min max [withscore] [limit offset count] 返回有序集合中,分值介于min和max中所有的成员
zrevrangebyscore 同上,从大到小排序
zremrangebyrank zremrangebyrank key-name start stop 删除所有排名介于start和stop之间的成员
zremrangebyscore zremrangebyscore key-name min max 删除分值介于min和max之间的成员
zinterstore 不了解,下次分享
zunionstore 不了解,下次分享

你可能感兴趣的:(redis,redis最佳实践)