Redis API的使用和理解
1.通用命令
通用命令
mset /mget 批量设置 减少了网络时间 一般而言=网络时间+命令时间
sadd myset a b c d e 将一个或多个成员元素加入到集合中
keys * 生产不适用 热备从节点 scan
dbsize 计算key的总数
exists key 检查key是否存在
expire key seconds key在seconds秒后过期
ttl key 查看key剩余的过期时间
persist key 去掉key的过期时间
type key 返回key的类型
数据结构和内部编码
单线程架构
单线程为什么这么块?
1.纯内存
2.非阻塞IO
3.避免现场切换和竟态消耗
2.字符串类型
incr key #自增1
decr key #自减1
incrby key k #自增k
decrby key k #自减k
set key value #不管key是否存在,都设置
setnx key value #key不存在,才设置
set key value xx #key存在,才设置
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 #设置指定下标所对应的值
3.哈希类型
以h开头:
hget/hegtall hmget/hmset
hset
hdel
hincrby user:1:info pageview count
hvals key #返回hash key对应所有的值
hkeys key #返回hash key对应的所有field
4.列表类型
有序 可以重复
lpush和rpush 弹入
lpop和rpop 从左边弹出一个|从右边弹出一个
lrem key count value
ltrim key start end #按照索引范围进行修减列表
linsert listkey before|after b java
lrange
lindex key index
5.集合类型
sadd 添加 srem 删除
scard sismember
srandmember 也是弹出 不会破坏集合
smembers 无序 慎用 可以用scan
spop随机弹出一个元素
sinter 取出两个集合相同的元素
sdiff 取出两个集合不同的元素
sunion 取出两个集合的并集
无序 无重复 支持集合间操作
6.有序集合类型
特点:
zadd
zrem
zscore key element 返回元素分数
zincrby key increScore element 增加或减少元素的分数
zcard key 返回元素的总个数
zrange key start end [withscores] 返回指定索引范围内的升序元素[分值]
zrange key minScore maxScore [withscores] 返回指定分数范围内的升序元素[分值]
zcount key minScore maxScore 返回有序集合内在指定分数范围内的个数
zremrangebyrank key start end 删除指定排名内的升序元素
zremrangebyscore key minScore maxScore 删除指定分数内的升序元素
zrevrank 从高到低
zrevrange
zrevrangebyscore
zinterstore
zunionstore