Site updated: 2022-10-17 16:23:52

This commit is contained in:
qinglong
2022-10-17 16:23:53 +08:00
parent 52c6080126
commit 6bac9e6422
59 changed files with 100 additions and 80 deletions

20
rss.xml
View File

@ -25,7 +25,9 @@
<link>https://blog.jingxiyuan.cn/2022/10/17/redis%E4%B8%BB%E4%BB%8E%E5%9F%BA%E7%A1%80%E9%85%8D%E7%BD%AE%E8%AE%B0%E5%BD%95/</link>
<pubDate>Mon, 17 Oct 2022 14:07:35 +0800</pubDate>
<description><![CDATA[ &lt;h4 id=&#34;主服务&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#主服务&#34;&gt;#&lt;/a&gt; 主服务&lt;/h4&gt;
&lt;h6 id=&#34;基础配置&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#基础配置&#34;&gt;#&lt;/a&gt; 基础配置&lt;/h6&gt;
&lt;ol&gt;
&lt;li&gt;基础配置&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&#34;language-conf&#34;&gt;port 6379
requirepass 123456密码建议不设置
vm-enabled no (虚拟内存,内存够的情况下可以不使用)
@ -38,12 +40,16 @@ list-compress-depth 20quicklist的两端多少个node不压缩0为全部
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;sysctl vm.overcommit_memory=1 (立即生效)
修改/etc/sysctl.conf添加vm.overcommit_memory=1表示内核允许分配所有的物理内存而不管当前的内存状态如何。Redis的RDB持久化实现是folk一个子进程然后让子进程将内存镜像dump到RDB文件中。理论上来说是需要跟父进程一样的内存空间但是由于linux很早就支持的copy-on-write技术所以实际上并不需要这么多的物理内存的。
&lt;/code&gt;&lt;/pre&gt;
&lt;h6 id=&#34;禁用透明大页影响性能&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#禁用透明大页影响性能&#34;&gt;#&lt;/a&gt; 禁用透明大页(影响性能)&lt;/h6&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;禁用透明大页(影响性能)&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;需要sudo su 切换到root身份sudo 没用)
echo never &amp;gt; /sys/kernel/mm/transparent_hugepage/enabled
修改/etc/init.d/redis-server加入/bin/echo never &amp;gt; /sys/kernel/mm/transparent_hugepage/enabled
&lt;/code&gt;&lt;/pre&gt;
&lt;h6 id=&#34;修复tcp警告&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#修复tcp警告&#34;&gt;#&lt;/a&gt; 修复 TCP 警告&lt;/h6&gt;
&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;修复 TCP 警告&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&#34;language-conf&#34;&gt;sysctl net.core.somaxconn=1024立即生效
修改/etc/sysctl.conf添加net.core.somaxconn=1024
客户端的输出缓冲区的限制,因为某种原因客户端从服务器读取数据的速度不够快,可用于强制断开连接(一个常见的原因是一个发布 / 订阅客户端消费消息的速度无法赶上生产它们的速度)。
@ -58,12 +64,16 @@ client-output-buffer-limit &amp;lt;class&amp;gt;&amp;lt;hard limit&amp;gt; &amp;
例如,如果硬限制为 32 兆字节和软限制为 16 兆字节 /10 秒,客户端将会立即断开。如果输出缓冲区的大小达到 32 兆字节,客户端达到 16 兆字节和连续超过了限制 10 秒,也将断开连接。默认 normal 客户端不做限制,因为他们在一个请求后未要求时(以推的方式)不接收数据,
只有异步客户端可能会出现请求数据的速度比它可以读取的速度快的场景。
&lt;/code&gt;&lt;/pre&gt;
&lt;h6 id=&#34;把硬限制和软限制都设置为-0-来禁用该特性&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#把硬限制和软限制都设置为-0-来禁用该特性&#34;&gt;#&lt;/a&gt; 把硬限制和软限制都设置为 0 来禁用该特性&lt;/h6&gt;
&lt;ol start=&#34;4&#34;&gt;
&lt;li&gt;把硬限制和软限制都设置为 0 来禁用该特性&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&#34;language-conf&#34;&gt;client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 5gb 512mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
&lt;/code&gt;&lt;/pre&gt;
&lt;h6 id=&#34;持久化配置&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#持久化配置&#34;&gt;#&lt;/a&gt; 持久化配置&lt;/h6&gt;
&lt;ol start=&#34;5&#34;&gt;
&lt;li&gt;持久化配置&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&#34;language-conf&#34;&gt;---关闭RDB持久化---
save &amp;quot;&amp;quot;
默认配置如下: