Redis6学习笔记【part3】配置文件与订阅/发布

news2024/9/21 22:37:37

一.Redis配置文件

1.Units单位

配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit。其中 GB、Gb 大小写不敏感。

在这里插入图片描述

2.Include包含

类似 jsp 中的 include 引入公共页面 ,redis 在多实例的情况也可以把公用的配置文件提取出来。

在这里插入图片描述


3.网络相关配置

① bind

默认情况bind=127.0.0.1,即只能接受本机的访问请求。不写的情况下,无限制接受任何ip地址的访问。

生产环境下要写你应用服务器的地址,服务器是需要远程访问的,所以需要将其注释掉,以使任何ip地址都可以访问。

在这里插入图片描述

重启redis服务器后,执行指令 ps -ef|grep redis 查看进程信息,此时redis不再是本机访问了,可以接受任何ip地址。

在这里插入图片描述

② protected-mode

将本机访问保护模式设置no。因为如果开启了 protected-mode ,那么在没有设定 bind ip 且没有设密码的情况下,redis只允许接受本机的响应。

在这里插入图片描述

③ port

设置端口号,默认为6379。

在这里插入图片描述

④ tcp-backlog

tcp 的 backlog其实是一个连接队列,backlog 队列总和 = 未完成三次握手队列 + 已经完成三次握手队列 。在高并发环境下你需要一个高backlog值来避免慢客户端连接问题。

在这里插入图片描述

注:Linux内核会自动将这个值减小到128,这是因为 linux 配置文件中设置的,我们需要确认增大 /proc/sys/net/core/somaxconn/proc/sys/net/ipv4/tcp_max_syn_backlog(128) 两个值才能达到想要的效果。

⑤ timeout

一个空闲的客户端维持多少秒会关闭。0表示关闭该功能,即永不关闭 redis 客户端。

在这里插入图片描述

⑥ tcp-keepalive

对访问客户端的一种心跳检测,每个n秒检测一次。单位为秒,如果设置为0,则不会进行 keepalive 检测,建议设置成60,即1分钟。

在这里插入图片描述


4.General 通用

① daemonize

是否为后台进程,设置为yes,则会守护进程,后台启动。(即实现后台启动服务器)

② pidfile

存放 pid 文件的位置,每个实例会产生一个不同的 pid 文件。

③ loglevel

指定日志记录级别,redis 共支持四个级别:dubug、verbose、notice、warning,默认为 notice。

四个级别根据使用阶段来选择,生产环境选择 notice 或者 warning。

④ logfile

设置日志文件的名称。

⑤ databases

设置库的数量,默认为16。


5.Security 安全

① requirepass foobared

用于访问密码的查看、设置与取消。在命令中设置密码只是临时的,重启 redis 服务器密码就还原了,但在配置文件中设置就是永久设置。


6.Limits 限制

① maxclients

设置redis同时可以与多少个客户端进行连接,默认情况下为10000个客户端。如果达到了此限制,redis则会拒绝新的连接请求,并且向这些连接请求方发出“max number of clients reached” 以作回应。

② maxmemory

  • 设置 redis 可以使用的内存量。一旦到达内存使用上限,redis将会试图移除内部数据,移除规则可以通过maxmemory-policy来指定。
  • 如果 redis 无法根据移除规则来移除内存中的数据,或者设置了“不允许移除”,那么 redis 则会针对那些需要申请内存的指令返回错误信息,比如SET、LPUSH等。
  • 对于无内存申请的指令,仍然会正常响应,比如GET等。如果你的 redis 是主 redis(说明你的redis有从redis),那么在设置内存使用上限时,需要在系统中留出一些内存空间给同步队列缓存,只有在你设置的是“不移除”的情况下,才不用考虑这个因素。
  • 建议必须设置,否则若内存占满时会造成服务器宕机。

③ maxmemory-policy

移除规则说明
volatile-lru使用LRU算法移除key,只对设置了过期时间的键;(最近最少使用)
allkeys-lru在所有集合key中,使用LRU算法移除key
volatile-random在过期集合中移除随机的key,只对设置了过期时间的键
allkeys-random在所有集合key中,移除随机的key
volatile-ttl移除那些TTL值最小的key,即那些最近要过期的key
noeviction不进行移除。针对写操作,只是返回错误信息

④ maxmemory-samples

设置样本数量,因为LRU算法 和 最小TTL算法 都并非是精确的算法,而是估算值,所以我们可以设置样本的大小,redis默认会检查这么多个key并选择其中LRU的那个。

一般设置3到7的数字,数值越小样本越不准确,但性能消耗越小。


二、Redis的发布和订阅

1.概念

Redis 发布/订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。

Redis 客户端可以订阅任意数量的频道。

客户端可以订阅频道:

在这里插入图片描述

当给这个频道发布消息后,消息就会发送给订阅的客户端:

在这里插入图片描述

2.实现

第一步,打开一个客户端,执行 subscribe <channel>来订阅频道。

在这里插入图片描述

第二步,打开另一个客户端,执行 publish <channel> <message>来发布消息,integer类型的返回值代表的是订阅者的数量。

在这里插入图片描述

第三步,打开第一个客户端可以看到发送的消息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/172098.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

9 大指标分析 Solana 的熊市危机

Daniel, 2023 年 1 月Solana 是一个去中心化的区块链网络&#xff0c;由 Solana 实验室设计并在2020年推出&#xff0c;具有快速、可扩展和安全的特点。由于其快速的交易速度和低交易费用&#xff0c;Solana 在 2020 年和 2021 年获得了极大的关注&#xff0c;这使得它对去中心…

远程仓库操作

添加远程仓库 新建一个文件夹&#xff1a; 文件夹右键打开git bash: 初始化为git仓库&#xff1a; 在码云上新建一个git仓库&#xff1a; 复制链接&#xff1a; 在文件夹里使用git bash&#xff1a; git remote add<shortname><url> 添加一个新的远程仓库&…

制作tomcat的docker镜像

环境信息&#xff1a;MacBook Pro&#xff08;M1&#xff09;VMware-fusion(Player 版本 13.0.0 (20802013))Ubuntu 22.10tomcat镜像&#xff1a;centos-7.9.2009jdk1.8.0_341 apache-tomcat-8.5.84制作步骤&#xff1a;&#xff08;1&#xff09;下载好tomcat/jdk(我是在macbo…

学习react

这里写自定义目录标题学习React学习React 安装react的脚手架 npm i create-react-app -g通过脚手架创建demo D:\dev_project>create-react-app react-demo You are running Node 11.1.0. Create React App requires Node 14 or higher. Please update your version of No…

找不到合适好用的redis客户端工具?试试官方的客户端工具RedisInsight

这里是weihubeats,觉得文章不错可以关注公众号小奏技术&#xff0c;文章首发。拒绝营销号&#xff0c;拒绝标题党 背景 之前使用的redis客户端工具是AnotherRedisDesktopManager AnotherRedisDesktopManager github地址: https://github.com/qishibo/AnotherRedisDesktopManag…

千锋JavaScript学习笔记

千锋JavaScript学习笔记 文章目录千锋JavaScript学习笔记写在前面1. JS基础1.1 变量1.2 数据类型1.3 数据类型转换1.4 运算符1.5 条件1.6 循环1.7 函数1.8 对象数据类型1.9 数组和排序1.10 数组常用方法&#xff1a;1.11 字符串常用方法1.12 数字常用方法1.13 时间常用方法1.14…

九龙证券|三元锂离子电池和磷酸铁锂离子电池的特点和优劣势详解

动力蓄电池包括锂离子动力蓄电池、金属氢化物/镍动力蓄电池等。锂离子动力蓄电池一般简称为锂离子电池&#xff0c;锂离子电池是新能源轿车动力锂电池的重要品类&#xff0c;商场占有量也是最大的。新能源轿车商场上&#xff0c;锂离子电池常见的是磷酸铁锂离子电池和三元锂离子…

《图解HTTP》读书笔记

第一章、了解Web及网络基础 HTTP&#xff1a;HyperText Transfer Protocol&#xff0c;超文本传输协议。 HTML&#xff1a;HyperText Markup Language&#xff0c;超文本标记语言。 URL&#xff1a;Uniform Resource Locator&#xff0c;统一资源定位符。 把与互联网相关联的…

SQL题面试题

有3个表S(学生表)&#xff0c;C&#xff08;课程表&#xff09;&#xff0c;SC&#xff08;学生选课表&#xff09; S&#xff08;SNO&#xff0c;SNAME&#xff09;代表&#xff08;学号&#xff0c;姓名&#xff09; C&#xff08;CNO&#xff0c;CNAME&#xff0c;CTEACHER&…

SQL同时在线问题的解法

前言 同时在线相关的问题&#xff0c;在很多行业中也经常出现&#xff0c;比如&#xff1a; 统计同时最大主播数量统计同时最大在线人数统计同时最大打车人数… 很多人看到这类题&#xff0c;一脸懵逼&#xff0c;甚至连题意都看不懂&#xff0c;但是这道题是面试题中的常客&a…

SAP FICO CO-PA(获利分析会计)简介

一、概念信息 1、目标 CO-PA的目标&#xff1a;确定市场段的获利能力。 其中市场段就是一些指标的组合&#xff0c;比如客户A&#xff0c;加上产品&#xff11;就可以是一个获利分析段。 分析各个获利分析段的贡献边际&#xff0c;为后续销售决策提供支持&#xff08;主要与…

4、PyCharm中配置PyQt5-tools

1、 配置Qt Designer Workint directory&#xff1a;$FileDir$ 2、配置PyUIC Arguments&#xff1a;$FileName$ -o $FileNameWithoutExtension$.py Workint directory&#xff1a;$FileDir$ 3、配置PyRcc Arguments&#xff1a;$FileName$ -o $FileNameWithoutExtension$_rc.…

Linux常用命令——time命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) time 统计给定命令所花费的总时间 补充说明 time命令用于统计给定命令所花费的总时间。 语法 time(参数)参数 指令&#xff1a;指定需要运行的额指令及其参数。 实例 当测试一个程序或比较不同算法时&…

【进阶】Spring Boot配置文件(.properties提示有问题版)

努力经营当下&#xff0c;直至未来明朗&#xff01; 文章目录一、配置文件作用二、配置文件的格式三、properties配置文件说明1. properties 基本语法2. 读取配置文件3. properties缺点分析四、 yml配置文件说明1. yml基本语法2. yml使用进阶3. 注意&#xff1a;value值加单双引…

即时通讯开发之TCP 交互数据流、成块数据流

目前建立在 TCP 协议上的网络协议特别多,有 telnet,ssh,有 ftp,有 http 等等。 这些协议又可以根据数据吞吐量来大致分成两大类: 交互数据类型&#xff1a;例如 telnet,ssh,这种类型的协议在大多数情况下只是做小流量的数据交换,比如说按一下键盘,回显一些文 字等等。 数据…

【JavaScript】常见的事件(鼠标、键盘、表单等)

&#x1f4bb;【JavaScript】常见的事件 &#x1f3e0;专栏&#xff1a;JavaScript &#x1f440;个人主页&#xff1a;繁星学编程&#x1f341; &#x1f9d1;个人简介&#xff1a;一个不断提高自我的平凡人&#x1f680; &#x1f50a;分享方向&#xff1a;目前主攻前端&…

Xilinx 7系列FPGA之Artix-7产品简介

数字化革命改变了对新手和有丰富经验的 FPGA 设计人员的期望。为了在航空航天和国防、通信基础设施、医疗、工业和消费电子等对成本敏感的市场中竞争&#xff0c;需要在广泛的密度范围内提供强大的高性能功能组合。在不牺牲性能的情况下&#xff0c;开发人员必须能够扩展使用模…

python和netlogo软件模拟病毒传播仿真模型(一)

目前国内在网络舆情仿真建模中所使用的仿真平台主要有 Netlogo、Anylogic、Matlab、Vensim 等&#xff0c;netlogo软件是一款比较通用的。 但是他是由logo语言构成&#xff0c;语言逻辑很让人抓马。 这里python 中的mesa可以实现其中一部分&#xff0c;这里看一下病毒传播仿真模…

WPF 笔记3——在XAML中给对象属性赋值

看B站刘铁猛老师视频学习WPF XAML语言是从xml文件派生而来&#xff0c;是声明式语言&#xff0c;一个标签就表示声明了一个对象。 对象的值可以存储在对象的字段中&#xff0c;也可存储在对象的属性中&#xff1b; 通过给对象的属性赋值&#xff0c;可以在赋值时检查值的合法…

Redis6学习笔记【part2】基本数据类型与常用命令

一.单线程多路IO复用技术 Redis是单线程多路IO复用技术。多路复用是指使用一个线程来检查多个文件描述符&#xff08;Socket&#xff09;的就绪状态&#xff0c;比如调用 select 和 poll 函数&#xff0c;传入多个文件描述符&#xff0c;如果有一个文件描述符就绪&#xff0c;则…