redis-大数据量访问场景小聊

来源:互联网 发布:淘宝抠图 编辑:程序博客网 时间:2024/05/17 09:33
  
转载:http://aodi.paic.com.cn/forum.php?mod=viewthread&tid=5232&fromuid=1
感谢同事的分享。
很多同事不是很清楚redis可以干嘛,这边就简单的聊下。
     首先从基础开始,什么是redis,它和我们常说的NOSQL是什么关系?

Redis 是一个内存中的数据结构存储系统,它可以用作数据库,缓存和消息中间件。说白了主要就是用来缓存数据。
而NOSQL从字面意思来看是  not only SQL,意思就是运用非关系型的数据存储。REDIS也是NOSQL数据库的一种,
并不是说不使用SQL语句,很多封装方法后,用起来和普通的SQL语法一样样的。

      那么他如果操作,能实现什么呢?
       String ,Hash ,List ,Set,Sorted set 5 常用的数据类型,并且有持久化功能。


在JAVA封装后,你可以像操作java常用的数据类型一样去操作REDIS。
具体的5种特性属性,这里就不介绍了。有意者随便百度下。

Redis是单线程的,但是,处理速度非常的快。可以用redis做为一个消息队列,个人觉得它属于轻量级的,没有ACTIVEMQ那些繁重。
数据提交可以操作 pipline进行批量的处理数据,进行异步的提交。速度杠杠的。
redis在缓存的定义上是真正意义上的内存式缓存。不像MongoDB,利用索引,海量数据的存储镜像需要存在磁盘上或虚拟内存上。而
redis通过算法,将常用的数据类型,放在内存里,将不常用的进行持久化,移出内存空间。这个机制,非常类型JAVA的VM,了解新生代,
老年代,持久代的定义后,就不难理解redis的这个机制了。
Redis将内存的保存地址进行哈希排序,标记产生哈希槽。Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 取模,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。所以需要配置 内存的maxmemory策略,以免内存达到极限。
使用哈希槽的好处就在于可以方便的添加或移除节点。
当需要增加节点时,只需要把其他节点的某些哈希槽挪到新节点就可以了;
当需要移除节点时,只需要把移除节点上的哈希槽挪到其他节点就行了。
集群、主备防灾说的通俗点就是 对 哈希槽 的监管权的拥有。如果主有问题,就快速死掉,把哈希槽的拥有权给备机监管。
在持久化的时候,有2种方式:AOF和RDB。
RDB是可以配置指定的时间间隔对数据进行快照存储。
而AOF持久方式是对REDIS进行写的操作都进行存储。意思就是实时备份,所以通常
情况下AOF文件的数据集要完整一些。

那我们为什么要用它?
   既然REDIS是一种缓存管理工具。它当然可以取代现有一些CACHE的工具。
那我们到底怎么使用它能够给我们带来巨大的收益呢?
我们会在什么样的场景下使用它?看下这个逻辑金字塔模型,能够稍稍的解释一些使用

这3个分层的金字塔三角形,从底层开始说,第3层 游客,就是说客户随意逛逛,粘合度不高的,不会最终交易。第2层就是有自己喜好的,对这边有感兴趣的点。可以下单,但不一定会买。第一层金字塔顶层,就是 忠实客户会购买喜欢的产品。
可以看出整个流量数据是 第一层往后越少。
而实际应用中,如果所有的信息读写都是来自数据库的话,I/O的所有负担都压在了数据库上,而真正业务是要实现快速交易。流量一旦上来,发现查询也查不了,交易也交易不了,都堵塞了。所以并不是所有的操作都需要去访问数据库,这种海量数据下非常容易击穿数据库。导致生产事故。

在这样大数据量的频繁查询下,这个场景下,REDIS就派上了用场。

Redis缓存客户信息,用session id或者有access_token做为keyexpire 时间为30分钟。
而网站信息缓存信息,产品说明等。这样 就把大部分的流量拦截了下来,数据库的I/O解放了出来,
客户最先登录后,就把页面显示的信息,个人信息都缓存好了。无论怎么刷新,
退出登录都不会访问到数据库了。 数据库可以专心的等待交易的进行。
当然缓存的信息都是不常改变的,如产品说明,列表等等这些,另外的像客户信息如购买了产品后,
记得更新缓存,因为产品列表,个人信息发生了变化。
在分布式环境里,nginx作为负载均衡,轮询服务器,redis做为 分布式会话缓存工具 尤其常见。
再加上一些静态页面的处理,动静态分离,数据库读写分离,Java虚拟机的优化,TOMCAT容器的优化
等等,大数据量下的优化措施能把以前的拖拉机变成豪华飞机。有机会再讲下现在常见的分布式大型网站的建设
今天到此结束,码字辛苦,谢谢。
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 干股分红 什么是干股 干股协议书 干股是什么意思 干股与股份有什么区别 干股一般占多少合适 干股分红协议书 干股需要承担亏损吗 公司干股是什么意思 公司干股合作协议书 干股和实股的区别 干股怎么分红 原始股和干股 干股什么意思 利润一年100万干股30怎么算 干膜 干膜是什么 舷怎么读 舷的拼音 舷组词 锥形橡胶护舷 橡胶护舷 新型柴油舷外机 扣舷而歌之 柴油舷外机 拱形橡胶护舷 橡胶护舷检测 普利司通橡胶护舷 干电池电压 一节干电池电压 一节干电池的电压是 一节干电池 大便干节 一节干电池的电流是多少 泰国宋干节 一节干电池的电压 一节干电池多少伏 干花制作 制作干花 满天星干花