最近读了一本书,随手记录书中一些对Redis使用有帮助的知识点:
1、不要在key很多的Redis上执行keys *,单线程模型,全量遍历key的时候会造成阻塞
2、不要在一个写操作量很大的Redis上配置自动保存RDB,fork操作时会阻塞
3、三种方法启动Redis:默认配置(直接运行redis-server)、运行配置(在执行redis-server时携带启动参数)、配置文件启动(通过指定配置文件启动),建议生产环境使用配置文件启动
4、redis-cli两种方式连接服务器:
交互式:redis-cli -h {host} -p {port};
命令式:redis-cli -h {host} -p {port} {command}
5、停止Redis服务,需要从客户端发起停止命令:redis-cli shutdown
命令方式停止服务,可保证数据不会丢失,因为停止服务时会优先断开与客户端的连接、生成持久化文件。
另外可以通过kill -9 强制杀死Redis服务,但不会做持久化操作,缓冲区也不会优雅关闭,有可能造成AOF和复制丢失数据
冷知识:redis-cli shutdown 可以指定是否在关闭Redis前,生成持久化文件 nosave| save ,如果直接使用该命令不行,可以先连接服务器后,在交互界面输入shutdown
6、全局命令:
keys * 查看所有键,dbsize查看键总数;
dbsize执行时不遍历所有键,直接获取Redis内置的键总数变量,keys * 命令会遍历所有键,当Redis保存了大量键时,线上环境禁止使用
exists key 检查key是否存在
del key 删除key
expire key seconds 给key添加过期时间
可以通过ttl key 查看剩余过期时间
type key 查看key的数据结构类型
7、redis数据结构类型
string 基础类型,常用命令不想写
hash 基础类型,常用命令不想写
list 基础类型,常用命令不想写
set 无序集合,集合成员是唯一的,意味着集合中不能出现重复的数据
zset 有序集合, zset的每一个成员都有一个分数与之对应,并且分数是可以重复的
8、每种数据结构都有两种以上的内部编码实现,可通过object encoding key查看内部编码,redis此举是为了可以随时改进内部编码和适应不同的场景
9、redis是单线程处理命令,一条命令从客户端到达服务端后不会立刻被执行,而是进入一个队列,然后逐个被执行,不会有两个命令同时被执行
10、redis使用io多路复用解决单线程的性能问题
11、单线程模型对每个命令执行时间是有要求的,如果命令执行时间过长,会赵成其他命令阻塞
12、set key value 选项:
ex seconds 为key设置秒级过期时间 setex key seconds value 或者 set key value ex seconds
px milliseconds 为key设置毫秒级过期时间 set key value px milliseconds
nx key必须不存在才可以设置成功,用于添加 setnx key value 或者 set key value nx
xx 与nx相反,要求key必须存在,用于更新 set key value xx
冷知识:redis单独提供了setex和setnx,其他的选项并没有单独提供命令;如果有多个客户端同事执行setnx key value,根据单线程模型及命令特性,只有一个客户端能设置成功,setnx可作为分布式锁的一种实现方式
13、批量设置值 mset [key value ……],批量获取值 mget [key …..];批量操作命令可以提高开发效率和执行效率;需要注意,并不是一条命令,而是会生成多条命令一次性提交到服务端,最后仍是由服务端逐条执行,所以并不能无节制的使用批量操作,因为mxxx命令过多,网络传输时间会缩短,但服务端执行时长会延长,造成命令阻塞
14、redis提供自增incr(自增)、decr(自减)、incrby(自增指定数字)、decrby(自减指定数字)、incrbyfloat(自增浮点数)
15、redis数据类型的说明,list可用来做订阅发布模式实现阻塞队列,set可以用来对集合进行对比、取差的操作,zset有序队列应用场景不多按下不谈,string比较基础按下不谈
16、redis支持key迁移
move 支持redis服务内部迁移
dump+restore 支持不同redis实例间迁移,不保证原子性
migrate 对dump+restore的封装,且具有原子性
17、遍历key
1.全量遍历 keys *,支持*,?,[]
删除所有以abc开头的key redis-cli keys abc* | xargs reds-cli del
2. 渐进式遍历 scan,如果需要遍历所有的key,需要多次执行scan
语法:scan cursor [pattern] [count] cursor是必选参数,是一个游标,第一次遍历从0开始,每次scan完成都会返回当前游标的值,知道游标值为0,表示遍历结束,这个游标有点违背常理,不要介意这些细节;parrern是可选参数,等同于keys的筛选参数;count是可选参数,表明要遍历多少个key,默认值是10,此参数可以适当增大(我貌似找到了redis keys分页的办法)
此外,redis还提供了hscan(hash) sscan(set) zscan(zset)
scan并非完美,如果在scan的过程中有了键的变化,scan是无法兼顾的,可能会出现部分key没有遍历到的情况
18、redis-cli 可以使用select dbindex 切换数据库,默认是0 ,这一条白记了,官方快要去掉这个功能了
19、flushall是清空所有数据库,flushdb只清空当前数据库,数据比较多的情况下也会造成阻塞
20、redis支持慢查询分析,不想写,因为慢查询分析也会占用命令队列位置,时间过久会造成阻塞
21、redis shell 不想写,一般命令和shell参数够用
22、pipline 虽然可以缩减网络传输成本,但命令行过多还是会造成阻塞
23、事务与lua,事务按下不谈,但lua可以了解一下,如果对python、groovy等脚本语言比较熟悉,学习起来也不困难,lua是原子执行的,可以帮助开发和运维自己定制命令
24、bitmaps 暂时不打算了解
25、HyperLogLog 暂时不打算了解
26、发布订阅 我们有专门的mq中间件…
27、GEO可以用来实现附近位置、摇一摇等功能,这个solr也能做,看需要选择
28、Redis通讯协议为RESP,基于TCP构建
29、jedis参数说明
host
port
connectionTimeout 客户端连接超时
soTimeout 客户端读写超时
30、RDB持久化
手动触发save、bgsave,save会阻塞当前服务器,直到RDB过程完成为止,线上环境不建议使用;bgsave会执行fork操作,创建子线程,持久化由子进程负责,完成后自动结束,阻塞只发生在fork阶段,save命令已经废弃。debug reload、shutdown时自动执行bgsave。
31、阻塞
Api或数据结构使用不合理,查找慢查询、查找大对象 bigkeys
CPU饱和问题 redis-cli —stat 获取当前使用情况进行排查,运维上不建议和其他多核CPU密集型服务部署在一起,另外可以绑定CPU
持久化相关阻塞 虽然有bgsave,但每次还是需要fork,当fork时间过长时,会出现阻塞
32、redis设置密码config set require pass 123;输入密码 auth 123
33、jedispool依赖于Apache的common-pool,基础配置项也来自common-pool
34、redis服务端查看最大连接数config get maxclients ;redis启东时设置最大连接数 redis-server --maxclients 100000(然而并没什么卵用,应该是我打开方式不对)
相关推荐
1、文件内容:ibus-table-chinese-erbi-1.4.6-3.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/ibus-table-chinese-erbi-1.4.6-3.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊
选择Java后台技术和MySQL数据库,在前台界面为提升用户体验,使用Jquery、Ajax、CSS等技术进行布局。 系统包括两类用户:学生、管理员。 学生用户只要实现了前台信息的查看,打开首页,查看网站介绍、自习室信息、在线留言、轮播图信息公告等,通过点击首页的菜单跳转到对应的功能页面菜单,包括网站首页、自习室信息、注册登录、个人中心、后台登录。 学生用户通过账户账号登录,登录后具有所有的操作权限,如果没有登录,不能在线预约。学生用户退出系统将注销个人的登录信息。 管理员通过后台的登录页面,选择管理员权限后进行登录,管理员的权限包括轮播公告管理、老师学生信息管理和信息审核管理,管理员管理后点击退出,注销登录信息。 管理员用户具有在线交流的管理,自习室信息管理、自习室预约管理。 在线交流是对前台用户留言内容进行管理,删除留言信息,查看留言信息。
面向基层就业个性化大学生服务平台(源码+数据库+论文+ppt)java开发springboot框架javaweb,可做计算机毕业设计或课程设计 【功能需求】 面向基层就业个性化大学生服务平台(源码+数据库+论文+ppt)java开发springboot框架javaweb,可做计算机毕业设计或课程设计 面向基层就业个性化大学生服务平台中的管理员角色主要负责了如下功能操作。 (1)职业分类管理功能需求:对职业进行划分分类管理等。 (2)用户管理功能需求:对用户信息进行维护管理等。 (3)职业信息管理功能需求:对职业信息进行发布等。 (4)问卷信息管理功能需求:可以发布学生的问卷调查操作。 (5)个性化测试管理功能需求:可以发布个性化测试试题。 (6)试题管理功能需求:对测试试题进行增删改查操作。 (7)社区交流管理功能需求:对用户的交流论坛信息进行维护管理。 面向基层就业个性化大学生服务平台中的用户角色主要负责了如下功能操作。 (1)注册登录功能需求:没有账号的用户,可以输入账号,密码,昵称,邮箱等信息进行注册操作,注册后可以输入账号和密码进行登录。 (2)职业信息功能需求:用户可以对职业信息进行查看。 (3)问卷信息功能需求:可以在线进行问卷调查答卷操作。 (4)社区交流功能需求:可以在线进行社区交流。 (5)个性化测试功能需求:可以在线进行个性化测试。 (6)公告资讯功能需求:可以查看浏览系统发布的公告资讯信息。 【环境需要】 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.数据库:MySql 5.7/8.0等版本均可; 【购买须知】 本源码项目经过严格的调试,项目已确保无误,可直接用于课程实训或毕业设计提交。里面都有配套的运行环境软件,讲解视频,部署视频教程,一应俱全,可以自己按照教程导入运行。附有论文参考,使学习者能够快速掌握系统设计和实现的核心技术。
三菱Fx3u程序:自动检测包装机电机控制模板,PLC脉冲与伺服定位,手自动切换功能,三菱Fx3u程序:自动检测包装机电机控制模板——涵盖伺服定位与手自动切换功能,三菱Fx3u程序,自动检测包装机。 该程序六个电机,plc本体脉冲控制3个轴,3个1pg控制。 程序内包括伺服定位,手自动切,功能快的使用,可作为模板程序,很适合新手。 ,三菱Fx3u程序; 自动检测包装机; 六个电机; PLC脉冲控制; 伺服定位; 手自动切换; 功能快捷键; 模板程序。,三菱Fx3u PLC控制下的自动包装机程序:六电机伺服定位与手自动切换模板程序
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
计及信息间隙决策与多能转换的综合能源系统优化调度模型:实现碳经济最大化与源荷不确定性考量,基于信息间隙决策与多能转换的综合能源系统优化调度模型:源荷不确定性下的高效碳经济调度策略,计及信息间隙决策及多能转的综合能源系统优化调度 本代码构建了含风电、光伏、光热发电系统、燃气轮机、燃气锅炉、电锅炉、储气、储电、储碳、碳捕集装置的综合能源系统优化调度模型,并考虑P2G装置与碳捕集装置联合运行,从而实现碳经济的最大化,最重要的是本文引入了信息间隙决策理论考虑了源荷的不确定性(本代码的重点)与店铺的47代码形成鲜明的对比,注意擦亮眼睛,认准原创,该代码非常适合修改创新,,提供相关的模型资料 ,计及信息间隙决策; 综合能源系统; 优化调度; 多能转换; 碳经济最大化; 风电; 光伏; 燃气轮机; 储气; 储电; 储碳; 碳捕集装置; P2G装置联合运行; 模型资料,综合能源系统优化调度模型:基于信息间隙决策和多能转换的原创方案
IPG QCW激光模块电源驱动电路设计与实现:包含安全回路、紧急放电回路及光纤互锁功能的多版本原理图解析,IPG QCW激光模块电源驱动电路设计与实现:含安全回路、紧急放电及光纤互锁等多重保护功能的原理图解析,IPG QCW激光模块电源驱动电路, 包含安全回路,紧急放电回路,光纤互锁回路等, 元件参数请根据实际设计适当调整,此电路仅供参考,不提供pcb文件 原理图提供PDF和KICAD两个版本。 ,IPG激光模块; QCW激光电源驱动; 安全回路; 紧急放电回路; 光纤互锁回路; 原理图PDF和KICAD版本。,IPG激光模块电源驱动电路图解:含安全与紧急放电回路
基于LSSVM的短期电力负荷预测模型及其性能评估:结果揭露精确度与误差分析,LSSVM在短期电力负荷预测中的结果分析:基于均方根误差、平均绝对误差及平均相对百分误差的评估。,LSSVM最小二乘支持向量机做短期电力负荷预测。 结果分析 均方根误差(RMSE):0.79172 平均绝对误差(MAE):0.4871 平均相对百分误差(MAPE):13.079% ,LSSVM(最小二乘支持向量机);短期电力负荷预测;均方根误差(RMSE);平均绝对误差(MAE);平均相对百分误差(MAPE),LSSVM在电力负荷短期预测中的应用及性能分析
1、文件内容:libmtp-examples-1.1.14-1.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/libmtp-examples-1.1.14-1.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊
资源内项目源码是均来自个人的课程设计、毕业设计或者具体项目,代码都测试ok,都是运行成功后才上传资源,答辩评审绝对信服的,拿来就能用。放心下载使用!源码、说明、论文、数据集一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 4、如有侵权请私信博主,感谢支持
2023-04-06-项目笔记-第四百一十六阶段-课前小分享_小分享1.坚持提交gitee 小分享2.作业中提交代码 小分享3.写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.414局变量的作用域_414- 2025-02-21
MINIST数据集和春风机器学习框架
1、文件内容:ibus-table-chinese-wu-1.4.6-3.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/ibus-table-chinese-wu-1.4.6-3.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊
宿舍管理系统(源码+数据库+论文+ppt)java开发springboot框架javaweb,可做计算机毕业设计或课程设计 【功能需求】 系统拥有管理员和学生两个角色,主要具备系统首页、个人中心、学生管理、宿舍信息管理、宿舍分配管理、水电费管理、进入宿舍管理、出入宿舍管理、维修信息管理、卫生信息管理、考勤信息管理、留言板、交流论坛、系统管理等功能模块。 【环境需要】 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.数据库:MySql 5.7/8.0等版本均可; 【购买须知】 本源码项目经过严格的调试,项目已确保无误,可直接用于课程实训或毕业设计提交。里面都有配套的运行环境软件,讲解视频,部署视频教程,一应俱全,可以自己按照教程导入运行。附有论文参考,使学习者能够快速掌握系统设计和实现的核心技术。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
人凤飞飞凤飞飞是粉色丰富
2024蓝桥杯嵌入式学习资料
image_download_1740129191509.jpg
基于Multisim仿真的带优先病房呼叫系统设计(仿真图) 设计一个病房呼叫系统。 功能 (1)当有病人紧急呼叫时,产生声,光提示,并显示病人的编号; (2)根据病人的病情设计优先级别,当有多人呼叫时,病情严重者优先; (3)医护人员处理完当前最高级别的呼叫后,系统按优先级别显示其他呼叫病人的病号。
基于STM32F103的3.6kW全桥逆变器资料:并网充电放电、智能切换与全方位保护方案,基于STM32F103的3.6kW全桥逆变器资料:并网充电放电、智能控制与全方位保护方案,逆变器光伏逆变器,3.6kw储能逆变器全套资料 STM32储能逆变器 BOOST 全桥 基于STM32F103设计,具有并网充电、放电;并网离网自动切;485通讯,在线升级;风扇智能控制,提供过流、过压、短路、过温等全方位保护。 基于arm的方案区别于dsp。 有PCB、原理图及代码ad文件。 ,逆变器; 储能逆变器; STM32F103; 3.6kw; 485通讯; 全方位保护; 智能控制; 方案区别; PCB文件; 原理图文件; ad文件。,基于STM32F103的3.6kw储能逆变器:全方位保护与智能控制