Redis作为缓存服务器的配置
随着redis的发展,越来越多的架构用它取代了memcached作为缓存服务器的角色,它有几个很突出的特点:
1. 除了Hash,还提供了Sorted Set, List等数据结构
2. 可以持久化到磁盘
3. 支持cluster (3.0)
它的性能和memcached不相上下,再加上流行的其他组件(比如队列)也会用到redis,从架构简单出发,已经没有必要混用redis和memcached了。
写篇短文介绍一下用redis作为缓存服务器配置时候需要注意几个点。 Redis配置
作为缓存服务器,如果不加以限制内存的话,就很有可能出现将整台服务器内存都耗光的情况,可以在redis的配置文件里面设置: # 限定最多使用1.5GB内存 maxmemory 1536mb
如果内存到达了指定的上限,还要往redis里面添加更多的缓存内容,需要设置清理内容的策略: # 设置策略为清理最少使用的key对应的数据 maxmemory-policy allkeys-lru
清理策略有多种,redis的官方文档有一篇很详细的说明: http://redis.io/topics/lru-cache Redis监控
redis提供了INFO这个命令,能够随时监控服务器的状态,只用telnet到对应服务器的端口,执行命令即可: telnet localhost 6379 info
在输出的信息里面有这几项和缓存的状态比较有关系: keyspace_hits:14414110 keyspace_misses:3228654 used_memory:433264648 expired_keys:1333536 evicted_keys:1547380
通过计算hits和miss,我们可以得到缓存的命中率:14414110 / (14414110 + 3228654) = 81% ,一个缓存失效机制,和过期时间设计良好的系统,命中率可以做到95%以上,对于整体性能提升是很大的。
used_memory,expired_keys,evicted_keys这3个信息的具体含义,redis的官方也有一篇很详细的说明: http://redis.io/commands/info
有个ruby gem叫redis-stat,它利用INFO命令展现出更直观的信息报表,推荐:
https://github.com/junegunn/redis-stat 优化Rails的缓存配置
Rails在用redis作为缓存的时候,配置很简单,官方文档是用schema的方式来写的: config.cache_store = :redis_store, "redis://localhost:6379/0/cache"
由于实在太简单了,很多人就直接用这个默认设置了,但实际上还有一些很有用的参数可以通过hash options的方式来写,比如压缩超过32K的数据压缩以后再放入缓存,再比如设置默认所有的key失效时间为8小时: config.cache_store = :redis_store, {:host => "redis.server", :port => 6379, :compress => true, :expires_in => 8.hours, :compress_threshold => 32.kilobytes}
用一个实际案例来作为例子,一台redis缓存服务器在优化配置之前,占用4.2G左右的内存,缓存命中率在70%左右。
我们先在服务器上执行BGSAVE命令,将内存dump下来,然后用https://github.com/sripathikrishnan/redis-rdb-tools 这个工具,将dump的数据,解析成csv文件: rdb -c memory /var/redis/6379/dump.rdb > memory.csv
用excel打开分析,按key进行排序和统计,我们可以看到哪一些类型的缓存在服务器上最多,调整这个类型缓存的失效时间和失效机制,再通过redis-stat来观察进行微调,提高整体的命中率。
通过分析占用内存比较大的key,发现有30%左右的相同类型key,用了95%的内存,这些缓存大部分是html的片段缓存,通过设置compress_threshold和compress参数,让整体内存占用从4.2G,下降到了1.3G。
穷小子娶洋媳妇打印行业最大跨国并购完成打印行业最大规模跨国并购于12月12日宣布完成,一方是艾派克携手君联资本,另一方为利盟(LexmarkInternational,Inc。)。据悉,这场交易金额达到39亿美元(约为
千寻位置发起北斗智造者计划,让精准时空赋能物联网应用8月7日,全球领先的精准位置服务提供商千寻位置网络有限公司(以下简称千寻位置)宣布发起北斗智造者计划,正式向外界开放一揽子北斗精准时空技术能力,让物联网软硬件开发者能以更低门槛,开
居然之家启动ArtHome,为艺术创业者开辟家居场景售卖渠道在家庭装修结束后的软装过程中,越来越多的消费者会选择将艺术品放在家里摆设和陈列,然而,目前国内艺术品消费要么与昂贵的拍卖要么与低端的赝品划上等号。居然之家集团董事长汪林朋在2017
张建国再造一个人力资源领域的华为撰文郭娟引言约在2000年,华为离职了两位人物一个是李一男,日后创立了小牛电动车另一个叫张建国,为时任华为高级副总裁。李一男的故事在公司IPO的高光时刻已为人所熟知,张建国则低调许
每一位脆弱的中产都需要一款重疾险中国的中产有一个特点叫脆弱不贫困,这类群体的月收入看起来还不错,但抗风险能力极弱,假如家庭遭遇突发重大疾病,这种脆弱性尽显。1。饱受争议的中产中产这个群体,因为缺乏统一标准,随意性
继和ARM战略合作之后,DuerOS为什么又与高通走在了一起?重磅手机圈里流行一句话有智能手机的地方就有高通,12月7日,高通又迎来一个重磅级合作伙伴,那就是百度。一个是全球手机芯片的霸主,另一个是全球最大的中文搜索引擎,这二者怎么合作呢?时间回
千锁大战领域杀进一个实力玩家5月28日,一个叫果加的品牌出现在智能门锁市场,但熟悉这个领域的人都知道,果加的运营方叫火河科技,成立于2013年,从租住市场切入,6年来服务用户超过8000万人次,这期间,火河品
罗永浩4月1日开播,还挺像个段子的3月25日,罗永浩在抖音上的账号开通一天,在未发任何作品的前提下,粉丝数达35000!这个数据不算什么,年初央视的某些知名主持人入驻抖音,一天俘获粉丝达到千万。但对于老罗这种急于带
颜值即正义揭开任买大女主经济消费市场的棋局核心阅读从热播的大女主剧到大女主经济,女性消费力的提升决定了整个家庭支出的70,而在颜值即正义的价值观中,更多的年轻人愿意花钱去做医美项目。咨询机构德勤出了一份医美报告表明从201
互联网家装产品雷同,悦装网为什么获得融资?感谢招商局创投洪泰基金和滴滴创始投资人王刚,悦装网将坚持以家装为入口,为消费者实现一站式的整合家居生活服务。悦装网CEO郜亮在A轮融资发布会上发表了自己的感想。2016年12月2日
树立5G时代旗舰标准三星GalaxyS20系列正式登陆中国2020年2月27日,三星电子正式在中国发布三星GalaxyS20系列旗舰智能手机。伴随着5G时代的到来,通讯行业进入了又一个新的十年,三星GalaxyS20系列作为旗下新一代5G