如何用Redis实现分布式缓存

第一:Redis 是什么?

Redis是基于内存、可持久化的日志型、Key-Value数据库 高性能存储系统,并提供多种语言的API.

第二:出现背景

数据结构(Data Structure)需求越来越多, 但memcache中没有, 影响开发效率

性能需求, 随着读操作的量的上升需要解决,经历的过程有:

数据库读写分离(M/S)–>数据库使用多个Slave–>增加Cache (memcache)–>转到Redis

解决写的问题:

水平拆分,对表的拆分,将有的用户放在这个表,有的用户放在另外一个表;

可靠性需求

Cache的"雪崩"问题让人纠结

Cache面临着快速恢复的挑战

开发成本需求

Cache和DB的一致性维护成本越来越高(先清理DB, 再清理缓存, 不行啊, 太慢了!)

开发需要跟上不断涌入的产品需求

硬件成本最贵的就是数据库层面的机器,基本上比前端的机器要贵几倍,主要是IO密集型,很耗硬件;

维护性复杂

一致性维护成本越来越高;

BerkeleyDB使用B树,会一直写新的,内部不会有文件重新组织;这样会导致文件越来越大;大的时候需要进行文件归档,归档的操作要定期做;

这样,就需要有一定的down time;

基于以上考虑, 选择了Redis

第三:Redis 在新浪微博中的应用

Redis简介

  1. 支持5种数据结构

支持strings, hashes, lists, sets, sorted sets

string是很好的存储方式,用来做计数存储。sets用于建立索引库非常棒;

  1. K-V 存储 vs K-V 缓存

新浪微博目前使用的98%都是持久化的应用,2%的是缓存,用到了600+服务器

Redis中持久化的应用和非持久化的方式不会差别很大:

非持久化的为8-9万tps,那么持久化在7-8万tps左右;

当使用持久化时,需要考虑到持久化和写性能的配比,也就是要考虑redis使用的内存大小和硬盘写的速率的比例计算;


>>>阅读全文

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值