<深入理解redis>读书笔记
chapter2 键管理与数据结构
对大多数redis解决方案而言,键的命名设计至关重要。对于管理来说,内存消耗和redis性能都与数据结构设计相关。所以对开发者而言,最好有数据结构的命名文档规范。
chapter3 内存管理优化
rdbchecksum
默认yes,将65位循环冗余验证码放在RDB快照的末尾,作为防止文件损坏的一种手段。当redis产生一个子进程将快照保存到磁盘时,校验会增加10%的内存使用。
activerehashing
默认yes。hash就是找到一种数据内容和数据存放地址之间的映射关系。
哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。
redis中的主hash table将主键与对应的值进行关联。每隔100ms重新hash一次,就是释放删除了键占用的内存空间。
如果有非常高的高并发低延迟要求,可以设为no。
repl-disable-tcp-nodelay
tcp-nodelay:直接发送,关闭nagle算法(累积大的数据包,避免网络中有过多的小数据包)
默认是no,就是在主从复制中,master直接发送同步数据到slave,没有延迟。
设为yes,则会节省带宽,合并发送小包。但会有40ms以上的延迟。
前者关注一致性,后者关注性能。在高并发下,建议设置yes。
maxmemory
硬性设定最大内存。不设定的话,如果redis在增长中不断向系统申请内存而达到系统上线,系统可能会把redis杀掉,导致更大故障。
所以这个参数是要监控的,监控已用内存和最大内存的比例,达到阀值就报警,然后人为去考虑是不是改maxmemory。
maxmemory-policy
默认为noeviction ,就是达到硬性上限后,客户端无法再写入,这显然会引起问题。
还有多种键驱逐策略。如果redis中的数据比较重要不能被删除,那就不能设置这些驱逐策略,而要关注maxmemory不要被用光。如果业务认为可以驱逐,那就按场景设置键驱逐策略
- noeviction : 不会对键进行驱逐,当达到内存限制时,添加数据的命令将会返回错误。
- allkeys-lru : 当达到内存限制时,驱逐最近最少使用的数据(LRU)。
- volatile-lru : 只对设置了过期时间的键进行 LRU 驱逐。如果没有键设置了过期时间,将会返回错误。
- allkeys-random : 对所有键进行随机驱逐。
- volatile-random : 只对设置过期时间的键进行随机驱逐。如果没有键设置了过期时间,将会返回错误。
- volatile-ttl : 只对设置了过期时间的键进行驱逐,优先驱逐即将过期的键。同样如果没有键设置了过期时间,将会返回错误。
<深入理解redis>读书笔记的更多相关文章
- csapp读书笔记-并发编程
这是基础,理解不能有偏差 如果线程/进程的逻辑控制流在时间上重叠,那么就是并发的.我们可以将并发看成是一种os内核用来运行多个应用程序的实例,但是并发不仅在内核,在应用程序中的角色也很重要. 在应用级 ...
- CSAPP 读书笔记 - 2.31练习题
根据等式(2-14) 假如w = 4 数值范围在-8 ~ 7之间 2^w = 16 x = 5, y = 4的情况下面 x + y = 9 >=2 ^(w-1) 属于第一种情况 sum = x ...
- CSAPP读书笔记--第八章 异常控制流
第八章 异常控制流 2017-11-14 概述 控制转移序列叫做控制流.目前为止,我们学过两种改变控制流的方式: 1)跳转和分支: 2)调用和返回. 但是上面的方法只能控制程序本身,发生以下系统状态的 ...
- CSAPP 并发编程读书笔记
CSAPP 并发编程笔记 并发和并行 并发:Concurrency,只要时间上重叠就算并发,可以是单处理器交替处理 并行:Parallel,属于并发的一种特殊情况(真子集),多核/多 CPU 同时处理 ...
- 读书笔记汇总 - SQL必知必会(第4版)
本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...
- 读书笔记--SQL必知必会18--视图
读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...
- 《C#本质论》读书笔记(18)多线程处理
.NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...
- C#温故知新:《C#图解教程》读书笔记系列
一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...
- C#刨根究底:《你必须知道的.NET》读书笔记系列
一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...
- Web高级征程:《大型网站技术架构》读书笔记系列
一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...
随机推荐
- nacos 日志问题 ERR-CODE: [NACOS-0002], Type: [环境问题]
nacos配置中心配置后,项目启动正常,运行项目也正常,但是总是打印如下日志: 2019-10-11 15:44:09.792 [com.alibaba.nacos.client.Worker.lon ...
- python3 使用selenium +webdriver打开chrome失败,报错:FileNotFoundError: [Errno 2] No such file or directory: 'chromedriver': 'chromedriver'
提示chrome driver没有放置在正确的路径下 解决方法: 1.chromedriver与chrome各版本及下载地址 驱动的下载地址如下: http://chromedriver.storag ...
- phpcms安装与使用
安装完wamp(或phpstudy)之后,将phpcms的安装文件复制入C:\wamp\www(或C:\phpStudy\PHPTutorial\WWW)文件夹下: 打开phpcms_v9_UTF8\ ...
- 中山普及Day13——普及
又是迷之自信的说...估的230,考的50整,我欲上天呐!!! T1:深渊(怕不是黑暗种族聚集地???) 思路:动归.而且是简单动归.转移方程:Fi,j=max(Fi-1,j,Fi,j,Fi-1,(j ...
- 获取navigationController中的控制器
@implementation UIViewController (UIViewControllerExt) - (void)popViewController:(NSString *)control ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表单:内联表单
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 第2章 PLC1200 与HMI (TP900) 组合仿真连接 编写1200程序,编写HMI 仿真过程拍摄视频
博途V13 与 WINCC PROFESSIONAL V13 创建一个PLC工程 和屏幕的 练习. 在做S1200与 HMI的仿真之前 需要设置控制面板 设置PG/PC口 巡视窗口用于看设备的一些属性 ...
- input文件类型上传,或者作为参数拼接的时候注意的问题!
1.ajax请求参数如果为文本类型,直接拼接即可.如果为file类型就需要先获取文件信息 2.获取文件信息: HTML代码: <div class="form-group"& ...
- Oracle建表时主键自增
1.创建表 /*第一步:创建表格*/ create table t_user( id int primary key, --主键,自增长 username ), password ), type ) ...
- Linux centosVMware 磁盘格式化、磁盘挂载、手动增加swap空间
一.磁盘格式化 磁盘分区后不能直接使用,需要对每一个分区格式化,格式化其实就是安装系统文件. 命令mke2fs:不支持格式化成xfs系统文件 mkfs.ext4 == mke2fs -t ext4 ...