redis到mysql_redis+mysql有几种用法?

首先redis在key value值查询的速度高于mysql,所以缓存有利于提高性能;

redis是内存型数据库,不可能存储过大的数据;而mysql是存储在硬盘上的,可以支持更大规模的数据,成本更低

-------

一般mysql结合redis缓存,读取数据时先从redis中查询,查询不到再从mysql中查询;写入数据首先更新mysql,然后拿到更新结果之后,刷新缓存数据或者删除缓存数据

-----------------------

以一个黑名单功能为例:

mysql中的表结构可能是一行记录的列名分别为

roleId userId serverId blackedRoleId blackedUseId blackedServerId createTime status 等等

以下几种操作可能的流程:

1.查询角色IdA的所有黑名单数据

1)制造A角色黑名单的blacklistrediskey,并查询此key,是否缓存有此角色的黑名单列表

若有,则直接返回,若没有,则进入下一步

2) 向mysql查询角色的黑名单列表,即使用sql语句,查询到结果后

3) 使用blacklistrediskey存储到redis当中

这里存储的redis数据类型为hash类型即Map,map的key为黑名单角色id,value值为黑名单角色信息,当然也可以用list或者set来存储;

这里更新缓存时可能会用到redis的pipeline技术,即一次性的将多条redis指令写入redis数据库,同时我们一般都会设置redis的缓存过期时间用来清除长期不用的缓存。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值