Redis 发布订阅
Redis 发布订阅 Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。Redis 客户端可以订阅任意数量的频道。 Redis 有两种发布订阅模式 基于频道(Channel)的发布订阅 基于模式(Pattern)的发布订阅 关键词:订阅、SUBSCRIBE、PSUBSCRIBE、PUBLISH、观察者模式 观察者模式Redis 发布订阅应用了设计模式中经典的“观察者模式”。 观察者模式(Observer)是一种行为设计模式,允许你定义一种订阅机制,可在对象事件发生时通知多个 “观察” 该对象的其他对象。 当一个对象状态的改变需要改变其他对象,或实际对象是事先未知的或动态变化的时,可使用观察者模式。 当应用中的一些对象必须观察其他对象时,可使用该模式。但仅能在有限时间内或特定情况下使用。 Redis 订阅模式Redis 有两种发布订阅模式: (1)基于频道(Channel)的发布订阅 服务器状态在 pubsub_channels 字典保存了所有频道的订阅关系: SUBSCRIBE 命令负责...
Redis 过期删除和内存淘汰
Redis 过期删除和内存淘汰 关键词:定时删除、惰性删除、定期删除、LRU、LFU Redis 过期删除Redis 可以为每个键设置过期时间,当键过期时,会自动删除该键。 设置键的生存时间或过期时间Redis 中,和键的生存时间相关的命令如下所示: 命令 描述 EXPIRE 设置 key 的过期时间,单位为秒 PEXPIRE 设置 key 的过期时间,单位为毫秒 EXPIREAT 设置 key 的过期时间为指定的秒级时间戳 PEXPIREAT 设置 key 的过期时间为指定的毫秒级时间戳 TTL 返回 key 的剩余生存时间,单位为秒 PTTL 返回 key 的剩余生存时间,单位为毫秒 PERSIST 移除 key 的过期时间,key 将持久保持 【示例】EXPIRE、TTL 操作 1234567891011121314> set key valueOK# 设置 key 的生存时间为 60s> expire key 60(integer) 1# 查看 key 的剩余生存时间> ttl key(integer) 58# ...
modbus 基础
1.什么是modbus?顾名思义,它是一个Bus,即总线协议。比如串口协议、IIC协议、SPI都是通信协议。通过此协议,控制器相互之间、或控制器经由网络(如以太网)可以和其它设备之间进行通信。Modbus协议使用的是主从通讯技术,即由主设备主动查询和操作从设备。一般将主控设备方所使用的协议称为Modbus Master,从设备方使用的协议称为Modbus Slave。 Modbus通讯物理接口可以选用串口(包括RS232、RS485和RS422),也可以选择以太网口。其通信遵循以下的过程: 主设备向从设备发送请求 从设备分析并处理主设备的请求,然后向主设备发送结果 如果出现任何差错,从设备将返回一个异常功能码 归纳:就是免费+简单+方便修改!Modbus就是一种用在工业上的简单协议! 2.modbus 包括些什么?大致细分为以下三种情况: Modbus-RTU Modbus-ASCII Modbus-TCP 一个设备只会有一个协议,只需要看对应的部分即可。 2.1.modbus 的通讯方式 以太网:对应的通信模式是Modbus TCP/IP 异步串行传输(各种介...
linux 命令集
linux 命令集 0.常用命令12345678910111213141516171819202122# 查看linux版本cat /etc/os-release# 查看服务systemctl# 查看指定服务状态systemctl status serviename# 查看全部进程ps aux# 查找指定进程ps -ef | grep Name # 结束进程kill PID # 查看进程路径pwdx PID # 查找文件find /path/to/search -name "filename"# 查看文件尾部多少行,并且试试监控新写入的每行数据tail -100f 文件名 # 给文件权限,777 意味着所有者、组用户和其他用户都有读、写和执行权限chmod 777 文件名# 递归地给文件夹及其内部所有文件赋予所有权限chmod -R 777 文件夹 1.基本命令1234567891011121314151617181920212223242526ps -ef | grep Name 查找进程kill Name 结束进程uname -m 显示机器的处...
linux 上常用操作
在工作中遇到的有关Linux的问题 ifconfig 个字段的含义此linux服务器为:kylin 接口名称 类型 用途 enp180s0f2 物理以太网接口 物理网络连接 enp25s0f0 物理以太网接口 物理网络连接 vethd989592 虚拟以太网接口对 容器/虚拟机网络通信 vethdc1bcea 虚拟以太网接口对 容器/虚拟机网络通信 virbr0 虚拟网桥 虚拟机NAT网络 设置tomcat 开机自启12345crontab -e# 在其中添加 下面这行代码(startup.sh 自行更好,只有一行时 & 不要) 保存reboot sudo -u root /home/debian/tomcat9/bin/startup.sh start &# 版本为 Kylin Linux ,用下行代码@reboot /home/windit_data/dataTransfer/apache-tomcat-8.5.100/bin/startup.sh start 调试tomcat取到tomcat bi...
Windows 工作常用操作
Windows 工作中遇到的问题 work condition标签(空格分隔): Windows windows 端口占用12345678# 查找端口号,监听的程序idnetstat -aon|findstr "9011"# 通过程序id,找到程序tasklist|findstr "24548"# 通过程序id,杀死这个程序taskkill -pid 24548 -f# 查找这个端口的线程的数量netstat -ano | findstr 9002 | find /c /v "" windows 启动 jar包案例一: 1234567891011121314@echo offsetlocalREM 改变当前工作目录到 JAR 文件所在目录, /d 参数允许同时更改驱动器和目录cd /d D:\transferData\REM 指定Java应用程序和参数set "JAVA_PATH=D:\transferData\jdk1.8.0_351\jre\bin\java"set "JAR_FI...
触发器
触发器 触发器1.触发器创建,语法如下 1234567CREATE TRIGGER trigger_name{BEFORE | AFTER} {INSERT | UPDATE | DELETE} ON table_nameFOR EACH ROWBEGIN -- 触发器主体 -- 你的SQL语句END; eg:创建 order 表 123456CREATE TABLE orders ( id INT AUTO_INCREMENT PRIMARY KEY, product VARCHAR(255), quantity INT, order_date DATE); 创建 order_summary 表 123456CREATE TABLE orders ( id INT AUTO_INCREMENT PRIMARY KEY, product VARCHAR(255), quantity INT, order_date DATE); 创建触发器 12345678910DELIMI...
redis 使用过程中的bug记录
redis 使用过程中的bug记录 redisBUG标签(空格分隔): redis Windows环境1、Could not connect to Redis at 127.0.0.1:6379: 由于目标计算机积极拒绝,无法连接。`` 2、报错如下 12345D:\Redis-x64-5.0.14.1>redis-server.exe redis.windows.conf[7948] 29 Jan 10:06:50.399 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo[7948] 29 Jan 10:06:50.399 # Redis version=5.0.14.1, bits=64, commit=ec77f72d, modified=0, pid=7948, just started[7948] 29 Jan 10:06:50.400 # Configuration loaded[7948] 29 Jan 10:06:50.402 # Could not create server TCP li...
Spring MVC 之视图技术
Spring MVC 之视图技术Spring MVC 中视图技术的使用是可插拔的。无论决定使用 Thymeleaf、Groovy 等模板引擎、JSP 还是其他技术,都可以通过配置来更改。 Spring MVC 的视图位于该应用程序的内部信任边界内。 视图可以访问应用程序上下文的所有 bean。 因此,不建议在模板可由外部源编辑的应用程序中使用 Spring MVC 的模板支持,因为这可能会产生安全隐患。 ThymeleafThymeleaf 是一个现代服务器端 Java 模板引擎,它强调自然的 HTML 模板,可以通过双击在浏览器中预览,而无需运行服务器,这对于 UI 模板的独立工作(例如,由设计师)非常有帮助。 Thymeleaf 与 Spring MVC 的集成由 Thymeleaf 项目管理。 配置涉及一些 bean 声明,例如 ServletContextTemplateResolver、SpringTemplateEngine 和 ThymeleafViewResolver。 有关详细信息,请参阅 Thymeleaf+Spring。 FreeMarkerApache F...
Spring MVC 之跨域
Spring MVC 之跨域Spring MVC 支持跨域处理(CORS)。 简介出于安全原因,浏览器禁止对当前源之外的资源进行 AJAX 调用。例如,可以在一个选项卡中使用您的银行帐户,而在另一个选项卡中使用 evil.com。来自 evil.com 的脚本不应该能够使用您的凭据向您的银行 API 发出 AJAX 请求——例如从您的账户中取款! 跨域(CORS)是由 大多数浏览器 实施的 W3C 规范,可让您指定哪种跨域请求是授权,而不是使用基于 IFRAME 或 JSONP 的不太安全和不太强大的解决方法。 处理CORS 规范分为预检请求、简单请求和实际请求。要了解 CORS 的工作原理,可以阅读 Cross-Origin Resource Sharing (CORS) 等,或者查看规范了解更多详细信息。 Spring MVC HandlerMapping 实现提供了对 CORS 的内置支持。成功将请求映射到处理程序后,HandlerMapping 实现检查给定请求和处理程序的 CORS 配置并采取进一步的操作。预检请求被直接处理,而简单和实际的 CORS 请求被拦截、验证,...