Redis项目中的使用规范

北京中科白癜风医院爱心传递 http://disease.39.net/bjzkbdfyy/170618/5469129.html
一、常用数据结构

注意:使用redis方法:

新增:先放入数据库,再放入缓存。

更新:先删缓存,再更新数据库。

查询:请求获取缓存时,存在,直接返回,若发现没有,从db获取,再重新赋值到缓存,这是最典型的缓存操作;

删除:使用expire命令

1、string

使用场景

1.缓存功能:使用redis作为缓存层,mysql做为存储层,将部分常用数据放入到redis中,由于redis具有高并发的特性,所以可以缓存可以起到加速读写和减轻后端压力的左右

2.计数:很多模块可以使用Redis作为技术工具,它可以实现原子操作,保证数据的准确性,常用功能有短信发送,支付密码次数校验等

3.共享Session:一个分布式web服务会将客户端的请求根据负载均衡策略打入到不同服务中,若请求中的认证信息(用户登录认证)保存在各自服务器中,则可能出现用户会需要重复登录现象,为了解决该问题,可以使用redis进行集中管理

4.全局序列号:利用redis生成全局唯一序列号,用于在分库分表的mysql做好全局唯一主键,防止主键冲突

使用命令

单值缓存:

SETkeyvalue

GETkey

对象缓存:

1)SETuser:1value(json格式数据)

2)MSETuser:1:namezhugeuser:1:balance

MGETuser:1:nameuser:1:balance

分布式锁:

SETNXproduct:true  //返回1代表获取锁成功

SETNXproduct:true  //返回0代表获取锁失败

。。。执行业务操作

DELproduct:  //执行完业务释放锁

SETproduct:trueex10nx  //防止程序意外终止导致死锁

计数器:

INCRarticle:readcount:{文章id}  

GETarticle:readcount:{文章id}

2、hash

使用场景:

1.电商购物车:

1)以用户id为key

2)商品id为field

3)商品数量为value

2.稀疏型结构化存储:

利用各种存储方式对比

1.字符串类型:优缺点

2.序列化字符串:优缺点(setuser:1serialize(userinfo))

3.hash类型:优缺点

使用命令

HMSETuser{userId}:namezhuge{userId}:balance

HMSETuser1:namezhuge1:balance

HMGETuser1:name1:balance

3、list

使用场景:

1.消息队列

利用lpush和brpop实现有序阻塞队列,缺点是无法保证消息丢失。

2.文章列表:。。。

3.微博消息和


转载请注明:http://www.aierlanlan.com/rzdk/6097.html