<深入理解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高级征程:《大型网站技术架构》读书笔记系列
一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...
随机推荐
- 第1节 Scala基础语法:1、2、概述,什么是scala
Scala编程 1. 课程目标 1.1. 目标1:熟练使用scala编写Spark程序 1.2. 目标2:动手编写一个简易版的Spark通信框架 1.3. 目标3:为阅读Spark内核源码 ...
- 「Luogu P5494 【模板】线段树分裂」
(因为没有认证,所以这道题就由Froggy上传) 线段树分裂用到的地方确实并不多,luogu上以前也没有这道模板题,所以就出了一道,实在是想不出怎么出模板了,所以这道题可能可以用一些其他的算法水过去. ...
- 一道快速考察 Python 基础的面试题
这是前一阵子群友发在群里的一道面试题,利用 Python 字典的特性,可以巧妙地使用精简代码达成完美解. 题目 将 data 转换成 new_data 这种形式,写出转换过程. data = { 'a ...
- 中山普及Day17——普及
今天换教室,本来教室多好嘛,易守难攻,结果...今天今天仅下午就被熊抄了2次,熊超真TMD不是人呐,走路连脚步声都没有. 然后,播报分数: 爆0了!!!
- SSM(Spring-SpringMvc-Mybatis)练习
1.总结 https://pan.baidu.com/s/1kXlCf4r 密码:hv6v 2.代码 https://pan.baidu.com/s/1pNgKph5 密码:6rcm 3.资料 h ...
- Interlocked.Increment()函数详解 (转载)
原文地址 class Program { static object lockObj = new object(); ; ; //假设要处理的数据源 , ).ToList(); static void ...
- JAVA关于回文判断的实现
(一). 设计思想: 首先输入字符串,然后判断长度若长度为0或1则输出TRUE若长度大于一则进行判断, 若符合条件则输出TRUE反之输出FALSE. (二)程序源代码 import java.util ...
- node指针
- win7/10获取本地wifi密码明文
win7 单击右下角无线网图标,选择已连接的无线网 右击无线网名称,选择属性 点击标题栏的安全,再点击显示字符,即可显示wifi密码明文 win10 控制面板[查看方式选类别]-查看网络状态和任务 点 ...
- MariaDB——相关概念与sql语句
数据库变量 数据库的两个目录 数据存放目录:/var/lib/mysql/ 配置文件目录:/etc/my.cnf.d/ 查看数据库的变量 show global variables lik ...