实战命令
单值缓存
set key value
get key
对象缓存
(1)set user:1 value(json格式)
(2)mset user:1:name junfeng user:1:age 18
mget user:1:name user:1:age
分布式锁
分布式锁解决了什么问题?
分布式锁解决了资源竞争,导致并发冲突和数据不一致的问题。
命令
setnx order:10000 true //返回1代表获取锁成功
setnx order:10000 true //返回0代表获取锁失败
。。。执行业务逻辑
del order:10000 //释放锁
set order:10000 true ex 10 nx //防止程序意外终止导致死锁
计数器
incr article:readcount:{文章id}
get article:readcount:{文章id}
分布式系统全局序列号
incrby orderid 1000 //redis批量生产序列号提升性能
hash常用操作
hset key field value //存储hash表key的键值
hsetnx key field value //存储不存在的hash表key的键值
hmset key field value[field value…] //存储多个键值对
hget key field //获取单个键值
hmget key field[field…]
hdel key //删除
hlen key//获取数量
hgetall key //获取所有键值
hincrby key field increment //为hash表key中field增加increment
list常用操作
lpush key value
rpush key value
lpop key
rpop key
lrange key start stop //从左边开始拿数据
blpop key timeout
brpop key timeout
常用数据结构
stack(栈) = lpush+lpop先进后出
queue(队列)= lpush+rpop 先进先出
blocking MQ = lpush+brpop
set常用的命令
sadd key userid
srem key userid
smembers key
srandmember key count
spop key count
集合操作
sinter set1 set2 //交集
sunion set1 set2 //合集
sdiff set1 set2 //差集
zset常用操作
zadd key score member
zrem key member
zscore key member
zincrby key increment member
zcard key
zrange key start stop
zrevrange key start stop //倒序获取有序集合start到stop
zset集合操作
zunionstore destkey numkeys key //并集
zinterstore destkey numkeys key //交集
最大连接数
配置文件:maxclient
scan
scan :渐进式遍历键查找
scan 0 match key* count 10
查找可能不精确,存在新增rehash情况。
持久化命令
save:同步阻塞
bgsave:异步非阻塞,会开启子线程,用到了写时复制技术。
管道
多条命令,一次性批量发到redis中去,让redis执行。节省了网络传输开销。(不具备事务和原则性)
jedis中使用Pipeline对象实现,如下图:
info
查看redis服务运行信息