Redis实战命令

实战命令

单值缓存

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对象实现,如下图:

Redis实战命令_第1张图片

info

查看redis服务运行信息

LUA脚本

你可能感兴趣的:(Redis,redis,缓存)