首页 > 数据库 >redis学习笔记整理

redis学习笔记整理

时间:2024-10-24 09:48:14浏览次数:1  
标签:no Redis redis 笔记 内存 整理 yes 节点

  1. 安装redis6.2.6
一件安装脚本
#!/bin/bash
# 修改系统参数
echo 'net.core.somaxconn = 1024' >>/etc/sysctl.conf
echo 'vm.overcommit_memory = 1' >>/etc/sysctl.conf
#以上两个系统参数不调整,在redis启动时将会有两条WARNING提示:
#WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
	# backlog参数控制的是三次握手的时候server端收到client ack确认号之后的队列值,即全连接队列
#WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add ‘vm.overcommit_memory = 1’ to /etc/sysctl.conf and then reboot or run the command ‘sysctl vm.overcommit_memory=1’ for this to take effect.
	#0:表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
	#1:表示内核允许分配所有的物理内存,而不管当前的内存状态如何
	#2: 表示内核允许分配超过所有物理内存和交换空间总和的内存
sysctl -p
#安装redis
wget http://download.redis.io/releases/redis-6.2.6.tar.gz
tar -zxf redis-6.2.6.tar.gz
cd redis-6.2.6
make -j8
make install
  1. 配置并以集群模式启动redis
#主要配置文件详解
# 监听地址,可以空格隔开 写多个IP,如果写0.0.0.0代表监听所有网卡IP
bind 0.0.0.0 
#redis3.2版本后加入的特性,选'yes'时在没有设置IP和密码的时候,redis只允许访问127.0.0.1:6379,建议设置为no。
protected-mode no
# 监听端口
port 6379
# ctp半连接长度配置tcp-backlog。在进行TCP/IP连接时,内核会维护两个队列
#   syns queue 用于保存已收到sync但没有收到ack的TCP半连接请求。由/proc/sys/net/ipv4/tcp_max_syn_backlog指定,我的系统(redhat7.9)1024	
#    accept queue,用于保存已经建立的连接,也就是全连接。由/proc/sys/net/core/somaxconn指定。
# 三次握手的时候server端接收到client的ack确认号之后的队列值,即全队列长度
tcp-backlog 511
#服务端与客户端超时无操作关闭连接。默认为0 永不关闭
timeout 0
# tcp会话保持时间,每300秒向连接空闲的客户端发送一次ack请求,已检查客户端是否存活,对于无响应的客户端将会关闭连接,设置为0则不会进行检测
tcp-keepalive 300
#默认redis-server不作为守护进程后台运行,需设置为yes作为守护进程后台运行,它会写一个 pid 到 /path/to/redis.pid 文件
daemonize yes
#redis启动后会把pid写入到pidfile指定的文件中
pidfile /var/run/redis_6379.pid
#loglevel 用于设置日志打印级别,默认notice;
# debug: 打印所有信息,包括debug信息
# verbose:打印除debug日志之外的所有日志
# notice:打印除了debug和verbose级别的所有日志。
#warning:仅打印非常重要的信息
loglevel notice

logfile "/data/redis/redis_6379.log"
#指定数据的数量,默认16个库,编号从0开始
databases 16
#启动是否显示logo
always-show-logo no
#配置默认用户default的密码
requirepass yourpass 
#设置可以同时连接客户端的最大数量。默认该项设置为 10000 个客户端。达到限制值后的连接会被拒绝并会返回错误信息。
maxclients 10000
#指定Redis最大内存限制。达到内存限制时,Redis将尝试删除已到期或即将到期的Key。
#单位为bytes字节,0为不限制,建议设为物理内存一半,8G内存的计算方式8(G)*1024(MB)1024(KB)*1024(Kbyte),需要注意的是缓冲区是不计算在maxmemory内。
maxmemory <bytes>
#配置达到最大内存限制后,Redis进行何种操作。默认noeviction
# volatile-lru 只对设置了过期时间的Key进行淘汰,淘汰算法近似的LRU。
# allkeys-lru 对所有Key进行淘汰,LRU。
# volatile-random 只对设置了过期时间的Key进行淘汰,淘汰算法为随机淘汰。
# allkeys-random 对所有Key进行淘汰,随机淘汰。
# volatile-ttl 只对设置了过期时间的Key进行淘汰,删除即将过期的即ttl最小的。
# noeviction 永不删除key,达到最大内存再进行数据装入时会返回错误。
maxmemory-policy noeviction
#yes时因空间满等原因快照无法保存出错时,禁止redis写入操作,建议为no
stop-writes-on-bgsave-error no
#持久化到RDB文件时,是否压缩,"yes"为压缩,"no"则反之
rdbcompression yes
#是否对备份文件开启RC64校验,默认是开启
rdbchecksum yes
#快照文件名
dbfilename dump.rdb
#数据文件保存路径
dir "/data/redis"
#是否开启AOF日志记录,默认redis使用的是rdb方式持久化,这种方式在许多应用中已经足够用了,但是redis如果中途宕机,会导致可能有几分钟的数据丢失(取决于dumpd数据的间隔时间),根据save来策略进行持久化,Append Only File是另一种持久化方式,可以提供更好的持久化特性,Redis会把每次写入的数据在接收后都写入 appendonly.aof 文件,每次启动时Redis都会先把这个文件的数据读入内存里,先忽略RDB文件。默认不启用此功能
appendonly no 
#lua脚本的最大执行时间,单位为毫秒
lua-time-limit 5000
# redis cluster 集群配置
# 是否开启集群,只有以集群模式启动的Redis实例才能作为集群的节点
cluster-enabled yes
##由node节点自动生成的集群配置文件名称,只需要配好位置即可
cluster-config-file “/data/redis/nodes-6379.conf"
#集群中node节点连接超时时间,超过此时间,会踢出集群
cluster-node-timeout 15000
#在执行故障转移的时候可能有些节点和master断开一段时间数据比较旧,这些节点就不适用于选举为master,超过这个时间的就不会被进行故障转移,计算公式:(node-timeout * replica-validity-factor) + repl-ping-replica-period 
cluster-replica-validity-factor 10 
#个主节点至少拥有一个正常工作的从节点,即如果主节点的slave节点故障后会将多余的从节点分配到当前主节点成为其新的从节点。
cluster-migration-barrier 1
#集群请求槽位全部覆盖,如果一个主库宕机且没有备库就会出现集群槽位不全,那么yes情况下redis集群槽位验证不全就不再对外提供服务,而no则可以继续使用但是会出现查询数据查不到的情况(因为有数据丢失)。建议为no
cluster-require-full-coverage no
#如果为yes,此选项阻止在主服务器发生故障时尝试对其主服务器进行故障转移。 但是,主服务器仍然可以执行手动强制故障转移,一般为no
cluster-replica-no-failover no
#Slow log 是 Redis 用来记录超过指定执行时间的日志系统, 执行时间不包括与客户端交谈,发送回复等I/O操作,而是实际执行命令所需的时间(在该阶段线程被阻塞并且不能同时为其它请求提供服务)slow log 保存在内存里面,读写速度非常快,因此可放心地使用,不必担心因为开启 slow log 而影响 Redis 的速度
 #以微秒为单位的慢日志记录,为负数会禁用慢日志,为0会记录每个命令操作。
 slowlog-log-slower-than 10000
 #最多记录多少条慢日志的保存队列长度,达到此长度后,记录新命令会将最旧的命令从命令队列中删除,以此滚动删除
 slowlog-max-len 128

标签:no,Redis,redis,笔记,内存,整理,yes,节点
From: https://www.cnblogs.com/baixisuozai/p/18498920

相关文章

  • 1-3节笔记
    常量的分类:1.整形2.实型(1)十进制小数形式(2)指数形式:1.23*10^5=1.23e5或1.23e+5{+是正号}[e、E][e前面一定是数字][e前后一定是整数,不能是小数]3.字符常量(1)普通字符常量:'a','B','3','@'[之间不能放多个字符,也不能不放][单引号是界限符,不是字符常量][字符在内存中以ASCLL码......
  • 《使用Gin框架构建分布式应用》阅读笔记:p127-p142
    《用Gin框架构建分布式应用》学习第9天,p127-p142总结,总计16页。一、技术总结1.Authentication方式汇总(1)APIkeysAPIkeys认证方式示例:func(handler*RecipesHandler)NewRecipeHandler(c*gin.Context){ //API-keys认证 value:=os.Getenv("X-API-KEY") log.Print......
  • 圆方树学习笔记
    元方树。下文除特殊强调外,所有图皆为无向图。引入割点:在图中,删除某个点后,导致图不再连通的点。点双连通:在一张图中,取两个点\(u\)、\(v\),无论删去哪个点(除\(u\)、\(v\)自身外),\(u\)、\(v\)都能连通,我们就说\(u\)和\(v\)点双连通。点双连通分量(后文称点双):对于一个无向......
  • 圆方树学习笔记
    前置芝士边双连通与点双连通oi-wiki上是这样说的:在一张连通的无向图中,对于两个点\(u\)和\(v\),如果无论删去哪条边(只能删去一条)都不能使它们不连通,我们就说\(u\)和\(v\)边双连通。在这里我们需要得出一个非常重要的性质:边双连通具有传递性。通俗来说,就是当\([x,y]\)......
  • 第三章学习笔记
    第3章线性模型3.1基本形式给定由d个属性描述的示例x=(x1;x2;…;xd),其中xi是x的第i个属性上的取值,线性模型试图学得一个通过属性的线性组合来进行预测的函数,即:一般用向量写成:线性模型形式简单、易于建模,具有很好的可解释性(comprehensibility)。3.2线性回归给定数据集D={(x1......
  • 【2024/10/22】ChatGPT国内中文版镜像网站整理合集
    一、GPT中文镜像站 yixiaai.com 支持GPT4、4o以及o1,支持MJ绘画1.什么是镜像站镜像站(MirrorSite)是指通过复制原始网站内容和结构,创建的备用网站。其主要目的是在原始网站无法访问时,提供相同或类似的服务和信息。2. ChatGPT镜像站的用途绕过访问限制 :在某些地区,访问O......
  • 笔记本wifi图标消失不见,如何解决
    今天碰见一个有意思的小电脑bug,不知道各位有没有遇见过,就是笔记本上的wifi图标消失不见了,导致无法操作网络,导致电脑无法联网进行操作。具体就是如下,wifi图标不见了。在网上查了半天资料,最后解决了,分享下解决过程。1.首先肯定想到的是强制重启看看,毕竟重启解决百分之98的问题。但......
  • 《程序员修炼之道:从小工到专家》读书笔记3
    程序员的流派程序员同样可以被视为属于某种“流派”,不同的流派对应着不同的技能、哲学和最佳实践。每个程序员都应该认识到自己的流派,这有助于他们选择合适的工具和方法来解决问题。关注质量而非数量编写高质量的代码比单纯注重代码的数量要重要得多。质量高的代码更容易维......
  • 24-10-21-读书笔记(二十八)-《契诃夫文集》(十二)下([俄] 契诃夫 [译] 汝龙)我们会生活下去!
    文章目录《契诃夫文集》(十二)下([俄]契诃夫[译]汝龙)我们会生活下去!阅读笔记读后感总结《契诃夫文集》(十二)下([俄]契诃夫[译]汝龙)我们会生活下去!  这篇就是《海鸥》、《三姐妹》和《樱桃园》。阅读笔记海鸥P139陀尔恩还有一点。作品里必须有清楚明白的思......
  • 二分图学习笔记
    1.概念假设图\(G=(V,E)\)是无向图,若顶点集\(V\)可以分成两个互不相交的子集\((A,B)\),且任意边\((i,j)\)两端点分别属于两子集,则图\(G\)是二分图判断方法:染色法匹配:无公共点的边集匹配数:边集中边的个数最大匹配:匹配数最大的匹配增广路:设M是一个匹配,如果存在一条连接两个未匹......