Redis(Redis配置和订阅发布)

文章目录

    • 1.Redis配置
        • 1.网络配置
          • 1.配置文件位置 /etc/redis.conf
          • 2.bind(注销支持远程访问)
            • 1.默认情况bind = 127.0.0.1 只能接受本机的访问
            • 2.首先编辑配置文件
            • 3.进入命令模式输入/bind定位,输入n查找下一个,shift + n查找上一个,找到bind注释掉
            • 4.重启redis,别忘记指定配置文件
            • 5.查看进程的情况,6379前面变成星号了,表示看,可以接受外部连接
            • 6.如果没有变成星号,就需要先杀死该进程然后在启动一下
          • 3.protected-mode(设置no支持远程访问)
          • 4.port(可以修改启动端口)
          • 5.timeout(一个空闲的客户端维持多少秒会超时,默认0不会超时)
          • 6.tcp-keepalive(对访问客户端的一种心跳检测, 默认300,建议设置60)
        • 2.通用配置
          • 1.daemonize(是否以守护进程启动)
            • 1.介绍
            • 2.设置为no测试
            • 3.保存之后杀死一下进程然后再重启,就会发现此时整个窗口都被redis占用
            • 4.ctrl + c退出,则服务也关闭了
          • 2.pidfile(记录了该进程的进程号)
            • 1.查看pidfile的位置
            • 2.看看
          • 3.loglevel(日志级别默认notice在测试时可以使用debug)
          • 4.logfile(日志文件位置,默认为空即不保留日志,可自定义日志文件位置)
            • 1.找到logfile位置
            • 2.设置日志文件位置
            • 3.创建日志文件
            • 4.重启redis,查看日志文件
          • 5.databases(设置redis共有几个库默认16)
        • 3.安全设置
          • 1.requirepass (设置密码)
            • 1.配置文件找到对应位置
            • 2.设置密码为root
            • 3.重启redis
            • 4.再次连接redis进行操作,使用auth进行登录,用户名用默认的直接输入密码root
            • 5.可以使用acl whoami来查看当前用户为default
            • 6.使用acl list可以查看所有用户
          • 2.使用config get命令可以获取配置信息
        • 4.限制配置
          • 1.maxclients(设置redis最大客户端连接数),如果超过连接则会报错Connection reset by peer
          • 2.maxmemory(最大内存)
            • 1.基本介绍
            • 2.所在位置
          • 3.maxmemory-policy(最大内存策略)
          • 4.maxmemory-samples(样本数量,一般设置3到7的数字,数值越小样本越不准确,但性能消耗越小)
    • 2.发布订阅
        • 1.发布和订阅是什么?
          • 1.示意图
          • 2.如何理解发布和订阅模式
            • 1.任务队列
          • 2.从生活中理解
        • 2.发布订阅分类
          • 1.一个发布者,多个订阅者
          • 2.多个发布者,一个订阅者
          • 3.多个发布者,多个订阅者
        • 3.命令行实现发布和订阅
          • 1.命令介绍
          • 2.一个发布者,多个订阅者
            • 1.三个连接都进入redis
            • 2.让2和3订阅频道chanenl1和chanenl2
            • 3.让1发布消息到chanenl1
          • 3.多个发布者,一个订阅者
            • 1.让1和2发布
            • 2.让3订阅(刚才订阅了)
          • 4.多个发布者,多个订阅者
            • 1.让3,4订阅
            • 2.让1,2发布
            • 3.最终3,4都接收到了

1.Redis配置

1.网络配置
1.配置文件位置 /etc/redis.conf
2.bind(注销支持远程访问)
1.默认情况bind = 127.0.0.1 只能接受本机的访问
2.首先编辑配置文件
vim /etc/redis.conf

image-20240429113924283

3.进入命令模式输入/bind定位,输入n查找下一个,shift + n查找上一个,找到bind注释掉

image-20240429114040993

4.重启redis,别忘记指定配置文件
redis-server /etc/redis.conf

image-20240429114202757

5.查看进程的情况,6379前面变成星号了,表示看,可以接受外部连接

image-20240429114820752

6.如果没有变成星号,就需要先杀死该进程然后在启动一下

image-20240429115010845

3.protected-mode(设置no支持远程访问)

image-20240429115616881

4.port(可以修改启动端口)

image-20240429115731835

5.timeout(一个空闲的客户端维持多少秒会超时,默认0不会超时)

image-20240429130714769

6.tcp-keepalive(对访问客户端的一种心跳检测, 默认300,建议设置60)

image-20240429131100730

2.通用配置
1.daemonize(是否以守护进程启动)
1.介绍

image-20240429131303512

2.设置为no测试

image-20240429131404508

3.保存之后杀死一下进程然后再重启,就会发现此时整个窗口都被redis占用

image-20240429132219182

4.ctrl + c退出,则服务也关闭了

image-20240429132302574

2.pidfile(记录了该进程的进程号)
1.查看pidfile的位置

image-20240429132629382

2.看看

image-20240429132716188

3.loglevel(日志级别默认notice在测试时可以使用debug)

image-20240429132909405

4.logfile(日志文件位置,默认为空即不保留日志,可自定义日志文件位置)
1.找到logfile位置

image-20240429133456181

2.设置日志文件位置

image-20240429133602109

3.创建日志文件

image-20240429133807541

4.重启redis,查看日志文件
5.databases(设置redis共有几个库默认16)

image-20240429134443668

3.安全设置
1.requirepass (设置密码)
1.配置文件找到对应位置

image-20240429134811737

2.设置密码为root

image-20240429134840493

3.重启redis

image-20240429134955436

4.再次连接redis进行操作,使用auth进行登录,用户名用默认的直接输入密码root

image-20240429135148895

5.可以使用acl whoami来查看当前用户为default

image-20240429135315627

6.使用acl list可以查看所有用户

image-20240429135404677

2.使用config get命令可以获取配置信息

image-20240429143110884

4.限制配置
1.maxclients(设置redis最大客户端连接数),如果超过连接则会报错Connection reset by peer

image-20240429143515488

2.maxmemory(最大内存)
1.基本介绍

image-20240429144115441

2.所在位置

image-20240429144326342

3.maxmemory-policy(最大内存策略)

image-20240429144947472

4.maxmemory-samples(样本数量,一般设置3到7的数字,数值越小样本越不准确,但性能消耗越小)

image-20240429145343135

2.发布订阅

1.发布和订阅是什么?
1.示意图

image-20240429145722602

image-20240429145941693

2.如何理解发布和订阅模式
1.任务队列

image-20240429150238877

2.从生活中理解

image-20240429150311100

2.发布订阅分类
1.一个发布者,多个订阅者

image-20240429150426023

2.多个发布者,一个订阅者

image-20240429150544102

3.多个发布者,多个订阅者

image-20240429150639781

3.命令行实现发布和订阅
1.命令介绍

image-20240429151515451

image-20240429151521552

2.一个发布者,多个订阅者
1.三个连接都进入redis

image-20240429152318113

2.让2和3订阅频道chanenl1和chanenl2
subscribe chanenl1 chanenl2

image-20240429152500148

3.让1发布消息到chanenl1
publish chanenl1 hello,world

image-20240429152902644

3.多个发布者,一个订阅者
1.让1和2发布

image-20240429153151172

2.让3订阅(刚才订阅了)

image-20240429153237433

4.多个发布者,多个订阅者
1.让3,4订阅

image-20240429153636146

2.让1,2发布

image-20240429153656779

3.最终3,4都接收到了

image-20240429153722727

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

恒创科技「5月活动」中国香港/美国服务器配置及价格汇总

值此 5 月,各大云服务商的促销活动也是接连不断。近日,恒创科技上线了 5 月出海乐购“惠”活动,从 4 月 28 日开始,持续整个 5 月份。活动分精选云产品、主流物理服务器、DDoS 防护、免费试用等四大专区,包含几十款企业…

一键生成AI数字人短视频工具推荐!

数字人是什么?是利用人工智能技术实现与真人直播形象的1:1克隆,即克隆出一个数字化的你自己,包括你的形象、表情、动作和声音都会被克隆下来,让你能够拥有接近真人的表现力。 怎样使用数字人一天生成上百条短视频,无需…

js浏览器请求,post请求中的参数形式和form-data提交数据时数据格式问题(2024-05-06)

浏览器几种常见的post请求方式 Content-Type 属性规定在发送到服务器之前应该如何对表单数据进行编码。 默认表单数据会编码为 "application/x-www-form-urlencoded" post请求的参数一般放在Body里。 Content-Type(内容类型),一般…

Elasticsearch:理解人工智能相似性搜索

理解相似性搜索(也称为语义搜索)的指南,这是人工智能最新阶段的关键发现之一。 最新阶段人工智能的关键发现之一是根据相似性搜索和查找文档的能力。相似性搜索是一种比较信息的方法,其基于含义而非关键字。 相似性搜索也被称为语…

5月5日智渍洁对江苏某公司冷却塔清洗-智渍洁

简报:5月5日智渍洁对江苏某公司冷却塔清洗 5月5日智渍洁对江苏某公司冷却塔清洗 - 重庆智渍洁环保科技有限公司简报:5月5日智渍洁对江苏某公司冷却塔清洗https://www.zhizijie.com/hl/zixun/gongsi/236.html

linux - 主次设备号自动申请

alloc_chrdev_region 原型如下,该函数向内核申请一个空闲的主设备号。 alloc_chrdev_region(&g_aputriger_dev, 0, APUTRIGER_MAX_NUM, "aputriger0"); 第四个参数是我们使用cat /proc/devices 看到的名称 /*** alloc_chrdev_region() - register a…

JAVA面向对象高级部分

内部类 内部类的四种形式 内部类概述、成员内部类 代码示例 创建对象的格式 通过对象名访问内部类方法 若内外部类的成员变量名冲突,如何在内部类分别访问外部成员变量。 总结 静态内部类 代码示例 访问静态内部类的方法 不能在静态内部类中访问实例成员变量 …

PE文件(四)FileBuffer-ImageBuffer作业

C语言实现如下功能 2.编写一个函数,将RVA的值转换成FOA 将文件加载到内存时,已知一个数据在内存中的地址,将此地址转化成文件在硬盘上时的相对于文件起始地址的文件偏移地址。即将虚拟内存偏移地址转换成文件偏移地址。 说明:这里…

并发容器(Map、List、Set)实战及其原理

Java的集合容器框架中,主要有四大类别:List、Set、Queue、Map,大家熟知的这些集合类ArrayList、LinkedList、HashMap这些容器都是非线程安全的。所以,Java先提供了同步容器供用户使用。同步容器可以简单地理解为通过synchronized来…

Selenium自动化测试面试题全家桶

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

Mybatis进阶4-权限管理

权限管理 1.权限 //相当于 职责 2.用户 //相当于 职员(职员就职于一个职位) 3.角色 //相当于 职位(有多个职责) 权限管理基础表:权限表,用户表,角色表 问题1:…

Unity 合并子物体获得简化Mesh

合并子物体获得简化Mesh 🥙环境🥪Demo 🥙环境 PackageManager安装Editor Coroutines 导入插件👈 🥪Demo 生成参数微调:Assets/EasyColliderEditor/Scripts/VHACDSettings/VHACDSettings.asset

如何做好一个活动策划?

活动策划的关键要素是什么? 首先,要明确一个概念:做活动就是走钢丝,没有保险的高空走钢丝!因为,活动没有“彩排”,只有现场"直播”! 无论什么类型的活动,人数是50人还是2000人,也不论预算…

我的256天之创作纪念日

目录 时光 数据的一些变化 开心的事 憧憬 时光 自上次CSDN的消息推送,又一个128天过去了,整天的工作和生活都在忙忙碌碌中度过,每到能静下来片刻,都倍感珍惜。因为一些原因,能够陪伴家人的时间越来越少&#xff…

[译]Elasticsearch _source Doc_values And Store Performance

原文地址 https://sease.io/2021/02/field-retrieval-performance-in-elasticsearch.html 在这篇博文中,我想从性能的角度探讨 Elasticsearch 为我们存储字段和查询时检索字段提供了哪些可能性。 事实上,Lucene(Elasticsearch 和 Solr 构建的…

SOL链DApp智能合约代币质押挖矿分红系统开发

随着区块链技术的不断发展和普及,越来越多的项目开始探索基于区块链的去中心化应用(DApp)。Solana(SOL)作为一条高性能、低成本的区块链网络,吸引了众多开发者和项目,其中包括了各种类型的DApp&…

SpringBoot实现Config下自动关联.xml、.properties配置信息的实例教程

本篇文章主要讲解在SpringBoot实现Config下自动关联.xml、.properties配置信息的实例教程。 日期:2024年5月4日 作者:任聪聪 .properties文件调用方法 步骤一、打开我们的 .properties 创建一个demo参数如下图: 步骤二、创建一个config的包&…

Windows系统安装MySQL数据库详细教程

【确认本地是否安装mysql】 (1)按【winr】快捷键打开运行; (2)输入services.msc,点击【确定】; (3)在打开的服务列表中查找mysql服务,如果没有mysql服务&am…

手撸Mybatis(三)——收敛SQL操作到SqlSession

本专栏的源码:https://gitee.com/dhi-chen-xiaoyang/yang-mybatis。 引言 在上一章中,我们实现了读取mapper配置并构造相关的mapper代理对象,读取mapper.xml文件中的sql信息等操作,现在,在上一章的基础上&#xff0c…

Qt---day2-信号与槽

1、思维导图 2、 拖拽式 源文件 #include "mywidget.h" #include "ui_mywidget.h" MyWidget::MyWidget(QWidget *parent) : QWidget(parent) , ui(new Ui::MyWidget) { ui->setupUi(this); //按钮2 this->btn2new QPushButton("按钮2",th…