随笔分类 - redis
摘要:一 vim /etc/sysctl.conf vm.overcommit_memory = 1 0:表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。 1:表示内核允许分配所有的物理内存,而不管当前的内存状态如何。 2:
阅读全文
摘要:穿透:频繁查询一个不存在的数据,由于缓存不命中,每次都要查询持久层。从而失去缓存的意义。 解决办法:①用一个bitmap和n个hash函数做布隆过滤器过滤没有在缓存的键。 ②持久层查询不到就缓存空结果,有效时间为数分钟。 雪崩:缓存大量失效的时候,引发大量查询数据库。解决办法:①保证缓存曾服务高可用
阅读全文
摘要:redis阻塞 1内在原因 1.1API或数据结构使用不合理(慢查询,大对象) 1.2.CPU饱和 redis-cli --stat 获取当前使用情况 +为每秒处理请求 redis处理命令只能用一个CPU,如果OPS几百或几千REDIS接近CPU饱和,可能是采用了高算法复杂度的命令,或者过度内存优化
阅读全文
摘要:持久化 方式RDB 与AOF两种 RDB持久化是把当前进程数数据生成快照保存到磁盘的过程。分为手动触发与自动触发。 save 与bgsave save:堵塞当前redis 服务器,直到RDB完成,内存较大会照成长时间堵塞。 bgsave:redis执行Fork操作创建子进程,RDB持久化由子进程负责
阅读全文
摘要:http://blog.csdn.net/qq_27623337/article/details/53206685
阅读全文
摘要:摘自《redis运维与开发》 服务器现象:主节点内存陡增,从节点无变化 客户端现象:客户端产生OOM ,无法写入新数据 分析 1.主从键数对比,dbsize 相同 2,info clients发现输出缓冲区队列过大 redis-cli client list |grep -v "omem=0" 运维
阅读全文
摘要:摘自书<<redis运维与开发>> 在Redis客户端的使用过程中,无论是客户端使用不当或者Redis服务端出现问题,客户端会反应出一些异常,下面分析一下Jedis使用过程中常见的异常情况: 一.无法从连接池获取到连接 JedisPool中的Jedis对象个数是有限的,默认是8个。这里假设使用的默认
阅读全文
摘要:redis快的因素 1纯内存访问 2IO复用 3单线程避免了线程切换和竟态产生的消耗 一 常用命令 mset a 1 b 2批量设置键值,mget a b获取 同样1000键值速度比set快10倍,仅0.1秒左右。 exists a 判断是否存在 flushall 清空所有数据库数据 flushdb
阅读全文
摘要:CacheCloud环境需求 Java 7 Maven 3 MySQL Redis 3 环境安装可以参考本博客随笔 官网https://github.com/sohutv/cachecloud 下载解压cachecloud-master.zip MySQL操作 create database `ca
阅读全文
摘要:部署3(Master)+3(Slave)的一个集群安装过程,真实生产环境上可以采用每台物理机上部署一个Master进程和一个Slave进程,Slave进程是其他物理机上的Master的备机,避免服务器在断电的情况下,配对的Master和Slave都不可用。 架构 下载redis wget -c ht
阅读全文