Redis高性能服务器存储应用

Redis是一个开源KV存储系统,与MemCache类似。Redis将大部分数据存储在内存中,支持的数据类型包括:字符串、哈希表、链表、无序集合、无需集合以及基于这些数据类型的相关操作。

Redis使用C语言开发,在大多数像C、C#、C++、OC、PHP、Python、Java、Perl、Lua、Erlang等均由可用的客户端来访问Redis服务器.。

Redis基于内存操作,读写速度很快(IO),100000读写每秒,可作为内存缓存服务器,提供持久化存储方案,可作为结构不复杂的数据库使用。

为什么要使用缓存呢?

  • 5400r的笔记本硬盘 读写速度(IO) 50~90MB/s
  • 7200r的台式机硬盘 读写速度(IO) 90~190MB/s
  • 固态硬盘读写速度可达到 500MB/s
  • DDRIII1333内存的读写速度大概为8G/s
  • Redis读写速度100000次/秒
  • MySQL读写速度 8000读/秒,4000写/秒。

Redis应用场景

  • 获取最新n个数据的操作
    获取网站最新文章,可将最新的5000条评论的ID放入Redis的List集合中,并将超出集合部分从数据库获取(以时间为权重)。
  • 排行榜应用,获取top n操作
    按顶的次数作为权重排序,此时需有序集合zset,将需要排序的值设置为sorted set的score,将具体的数据设置为对应的value,每次仅需执行一条zadd命令即可。
  • 需精准设定过期时间的应用
    可将sorted set 的 score 值设置为过期时间的时间戳,即可利用过期时间排序,定时清除过期数据了。不仅是清除redis中的过期数据,你完全可把redis里的过期时间当成对数据库中数据的索引。用redis来查询出哪些数据需要过期删除,然后再精准地从数据库中删除相应的记录。
  • 计数器应用
    Redis的命令都是原子性的,可轻松利用incr和decr命令来构建计数器系统。
  • uniq操作来获取某段时间所有数据去重值
    使用Redis的set数据结构最合适,只需不断地将数据往set中扔就行了,set意为集合,所以会自动去重。
  • pub/sub构建实时消息系统
    Redis的pub/sub系统可构建实时的消息系统
  • 构建队列系统
    利用List可构建队列系统,使用sorted set甚至可构建有优先级的队列系统。
  • 缓存
    最常用,性能优先于memcached(被libevent拖慢),数据结构更多样化。

Redis与MemCache对比

Redis与MemCache相比较而言,MemCache的批量读写性能要比Redis好一些。其次,MemCache集群扩充比较容易。Redis性能比较MemCache要高,主要表现在网络通信这一块。MemCache主要使用libevent第三方的网络通信库,Redis作者使用epool做高并发服务器。

例如:当Redis只是作为Cache和MySQL同步使用时

  • 读:读Redis后若无数据,去读mysql并将mysql数据回写入Redis。
  • 写:写mysql成功后,写入Redis。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值