星空体育入口:美味的饭菜不怕吃晚,逐一检查Redis配置文件确保一切井井有条是一种愉悦;忙碌是一种幸福,让我们无暇体会痛苦;奔波是一种快乐,让我们真切地感受生活;疲劳是一种享受,让我们无空虚之感。
星空体育APP
include /path/to/local.conf include /path/to/other.confMODULES
loadmodule /path/to/my_module.so loadmodule /path/to/other_module.so在启动时,Redis可以通过loadmodule选项加载模块,如果服务端无法加载模块,服务端将停止运行。您可以使用多个loadmodule选项来加载多个模块。在默认情况下,如果没有指定“bind”配置指令,Redis将监听服务器上所有可用网络接口的连接。
可以使用"bind"命令进行配置,然后跟上一个或多个IP地址,从而仅监听一个或多个指定接口。比如说,当设置多个bind地址后,Redis内部会保持多个Socket同时存在,每个Socket用于一个网络接口。「保护模式是开启的」:这个选项默认是启用的。如果Redis服务器不使用bind选项来明确指定要监听的网络接口,并且没有设置密码,那么Redis服务器只会接受来自127.0.0.1和::1地址以及Unix域Socket的客户端连接。「端口 6379」:用于设定Redis监听的TCP端口,默认为6379,将其设为0表示不监听TCP端口 「超时时间 0」:指示空闲多少秒后关闭连接,"0"表示不关闭 「TCP保活 300」:以秒为单位,设为0则不进行保活检测,建议设定为60 「TCP积压 511」:设定TCP的积压,积压其实是一个连接队列。未完成三次握手队列总数加上已完成三次握手队列总数等于backlog队列总和。在高并发环境下,需要设置一个较高的backlog值,以避免慢客户端连接问题。「请注意」:Linux内核会自动将这个数值减小至/proc/sys/net/core/somaxconn的数值,因此需要确认将somaxconn和tcp_max_syn_backlog两个数值增大以获得所期望的效果。Redis采用单线程多进程模式,daemonize用于指定redis启动时是否使用守护进程模式。Redis默认情况下不会作为守护进程来运行。如果需要,请使用词语"是"。在进入redis的命令行界面时, 从该界面强制退出或关闭连接工具(如putty,xshell)都会导致redis进程退出。开启守护进程模式。在这种模式下, Redis 会以后台进程的方式运行,并将进程 的pid 号写入由 redis.conf 中的 pidfile 选项设置的文件中, 这意味着 Redis 将会持续运行,直到手动终止该进程。当你使用upstart或者systemd来运行Redis时,Redis可以与你的监控树进行交互。可供选择的选项包括:
无 - 默认无交互 upstart - 通过向Redis发送SIGSTOP信号通知upstart systemd - 通过向$NOTIFY_SOCKET写入READY=1通知systemd auto - 根据设置了UPSTART_JOB或者NOTIFY_SOCKET环境变量来决定选项为upstart或者systemd pidfile
pidfile /var/run/redis_6379.pid //进程pid文件日志级别提示了重要信息:从上到下减少
debug:包含大量信息,有用:用于开发/测试的详细内容,其中包含一些有用的信息,但不会像调试级别那样混乱。\n通知:略带冗长,可能在生产环境中需要的内容。\n警告:仅记录非常重要/关键的消息。\n日志文件的名称,如果为空,redis会输出到标准控制台。如果以守护进程方式运行,并设置logfile为stdout,则日志将发送到/dev/null。\n数据库:系统默认有16个数据库星空体育官网。默认情况下,0库syslogsyslog启用 no:表示是否将日志输出到syslog中。系统日志默认情况下关闭
syslog标识 redis:指定syslog日志标识设备以redis开头
syslog设备 local0:指定syslog设备,值可以是USER或LOCAL0-LOCAL7,默认为local0
安全 (Security)requirepass 12345!@#
要设置redis连接密码。如果配置了连接密码,客户端在连接redis时需要使用Auth
命令提供密码,默认情况下未开启。@#
设定了redis的连接密码。如若配置了连接密码,那么客户端在连接redis时就需使用Auth
命令来提供密码,默认情况下是关闭的。
一旦密码设置完成,如果执行ping命令会失败,并显示“需要进行身份验证”,只要加上auth + 密码就可以成功。
在任何指令之前,验证必须为auth +密码
Redis通常用作缓存,而不是作为安全解决方案,且系统可能会将Linux视为安全环境。maxclients 10000: 这个设置可以让Redis同时连接多达10000个客户端。客户端的默认数量为10000个。当你无法设置进程文件句柄的限制时,redis会将其设置为当前文件句柄限制值减去32。这是因为redis需要为自身内部处理逻辑保留一些句柄。当达到这个限制时,Redis会拒绝新的连接请求,并向请求方发送“已达到最大客户端数量”的消息作为回应。配置Redis可用的内存量。当Redis达到内存使用上限时,它会尝试移除内部数据。移除规则可以通过maxmemory-policy来指定。如果Redis根据移除规则无法清除内存中的数据,或者设置了"禁止清除",那么Redis将会针对需要申请内存的命令返回错误信息,例如SET、LPUSH等。然而,对于未分配内存的指令仍会正常处理,例如GET等。如果您的Redis是主Redis(表示您的Redis存在从Redis),那么在设置内存使用上限时,需要在系统中保留一些内存空间给同步队列缓存。只有在您设置为“不移除”的情况下,才不需要考虑这个因素。设置最大缓存为物理内存的「3/4」或更小比例最好,以及相应的回收策略算法,因为redis在复制数据和其他服务时也需要缓存。最大缓存大小为128MB。为了避免缓存数据过大导致redis崩溃,从而导致系统发生故障无法使用。为了维持整个系统的可用性,可以牺牲部分缓存数据。Redis的新的内存机制将key存储在内存中,而将value存放在交换区。当内存数据达到设定的最大内存限制时,该配置需与 "maxmemory-policy" 配合使用以触发清除策略。当系统内存不足时,“内存不足”情况下,任何写操作(如set,lpush等)都将导致“清除策略”执行。为了在实际环境中确保redis的所有物理机器的硬件配置保持一致(内存一致)并且master/replica中的“maxmemory policy”配置一致,建议进行如下配置。当内存满时,如果Redis接收到设置命令,它会首先尝试移除已设置过到期信息的键,而不管该键的过期时间是否到达。所有的键在删除时都会根据其过期时间来进行处理,即最早过期的键会被首先删除。当所有具有过期信息的键都被删除后,如果内存仍然不足,则会返回错误。因此,redis将只允许接收读取请求,而不再接收写入请求。使用
maxmemory参数来设置Redis的内存限制非常适合将其用作类似于memcached的缓存。最大缓存策略「maxmemory-policy」有以下几种选择:\n1. volatile-lru:使用LRU算法移除key,只对设置了过期时间的键。\n2. allkeys-lru:使用LRU算法移除所有key。\n3. volatile-lfu:对过期键使用LFU近似算法。\n4. allkeys-lfu:对所有键使用LFU近似算法。\n5. volatile-random:在过期集合中移除随机的key,只对设置了过期时间的键。\n6. allkeys-random:移除随机的key。volatile-ttl选项会移除TTL值最小的键,也就是那些最近要过期的键 。noeviction选项则会禁止移除操作。 对于写操作,应该只返回错误信息(默认)。在公司的观察维度下,选择这种算法并不合适。LRU算法、LFU算法或者TTL算法并不十分精确,只能作为近似算法。「策略规则使用:」如果数据呈现幂律分布,即一部分数据的访问频率高,一部分数据的访问频率低,则应采用allkeys-lru策略。如果数据的访问频率是均匀分布的,也就是所有数据的访问频率都相等的话,就可以使用全键随机策略。设置样本数量
是为了确保所提及的算法并不是精确算法,而是估算值,因此您可以设定样本的规模。默认情况下,maxmemory-samples的值为5,表示Redis会随机选择5个键,并从中选择一个最符合条件的键。LRU算法使用槽大小为5是比较适合的。已经非常接近真正的LRU算法了,只是它会消耗更多的CPU资源。3比较迅速但不如准确。在Redis 5中,副本节点默认情况下会忽略最大内存设置,除非在发生故障转移后,该节点被提升为主节点。这表示只有主服务器才会执行过期删除策略,并且在删除键之后,主服务器会向副本发送DEL命令。
确保了主节点和副本节点的一致性,通常这是所需要的。但如果你的副本节点可写,并且你希望它有不同的内存配置,同时又要确保所有写操作都是幂等的,那么你可以改变这个默认行为(请确保你知道自己在做什么)。在默认情况下,“注意”复制节点不会执行过期策略,可能会使用超过maxmemory设定值的内存。所以你需要监视存储复制节点所在的设备,并确保当主节点达到配置的最大内存大小时,复制节点不超过物理内存大小。今天我们只讲到这里,主从复制和持久化的配置文件部分将在接下来的内容中进行讲解。本文是从微信公众号“阿Q说代码”转载而来,扫描下方二维码即可关注。请联系阿Q说代码公众号转载本文。
星空体育平台
星空体育注册
星空体育APP 星空体育注册 星空体育官方