Redis知识点

数据库操作 

select 数据库编号

dbsize 获取当前数据库键值对数量

flushdb 清空当前数据库

save 将数据库保存至磁盘

bgsave 将数据异步保存至磁盘

lastsave 获取最后一次成功保存的unix时间

通用数据库操作

keys 格式   查看符合格式的key , * 为通配符

exist key1[ key2 ... ]   查看是否存在一至多个指定的key

type key   按key查看value的数据类型

del key1 [ key2... ]  按key删除一至多个键值对

rename key1 [ key2... ]  重命名key1,如果key2已经存在其值会被覆盖

move key 数据库编号   按key将一个键值对移动到指定数据库

cope key1 key2 将key1的值拷贝给key2

一、字符串操作

set key value 添加/修改一个键值对

get key 按key获取value

mset key1 value1 [ key2 value2 ... ] 添加/修改一至多个键值对

mget key1 [ key2 ... ] 按key获取一至多个value

append key value  在原有value后追加内容

strlen key  查看字符串长度

getrange key startindex endindex 获取范围时[ startindex,endindex ]的子串

set key value nx    仅在key不存在时,添加一个键值对

setnx key value

  set key value xx  仅在key 已存在时,修改一个键值对

set key value get

getset key value 修改一个键值对并返回原值,原值不存在则返回nil

msetnx key1 value1 [ key2 value2 ... ]  批量版setnx

如果字符串的内容是整数

incr key 按key 创建值为1的value,或使value增长(increase)1

incrby key 数值  按key使value增长 (increase)给定数值

decr key  按key使value减小1

decrby key 数值 按key使value减小给定数值

临时值键对

以下支持各种数据类型

expire key 秒数    设定一个生存时间

ttl key 查看生存时间的剩余秒数

pexpire key 毫秒版 pexpire

pttl key 毫秒版 ttl

persist key  持久化(取消生存时间)

二、散列表

hset key field value       添加或者修改hash类型key的field的值
hget key field                获取一个hash类型key的field的值
hmset                            批量添加多个hash类型key的field的值
hmget                            批量获取多个hash类型key的field的值
hgetall                            获取一个hash类型的key中的所有的field和value
hkeys                              获取一个hash类型的key中的所有的field
hincrby                           让一个hash类型key的字段值自增并指定步长

 

hsetnx                             添加一个hash类型的key的field值,前提是这个field不存在,

                                        否则不执行

三、列表(List)

LPUSH key value1 value2 ...        :将一个或多个值插入到列表的头部。

RPUSH key value1 value2 ...        :将一个或多个值插入到列表的尾部。

LPOP key                                       :移除并返回列表的第一个元素。

RPOP key                                       :移除并返回列表的最后一个元素。

LRANGE key start stop                 :获取列表指定范围内的元素。

LINDEX key index                          :获取列表中指定索引的元素。

LLEN key                                        :获取列表的长度。

LTRIM key start stop                      :对列表进行修剪,只保留指定范围内的元素。

 四、集合(Set)

SADD key member1 member2 ...        :向集合添加一个或多个成员。

SREM key member                               :移除集合中的一个或多个成员。

SPOP key                                               :随机移除并返回集合中的一个成员。

SISMEMBER key member                    :检查成员是否是集合的成员。

SCARD key                                            :获取集合的成员数。

SMEMBERS key                                    :获取集合的所有成员。

SDIFF key1 key2 ...                                :返回一个或多个集合的差集。

SINTER key1 key2 ...                             :返回一个或多个集合的交集。

SUNION key1 key2 ...                            :返回一个或多个集合的并集。

五、有序集合(Sorted Set)

ZADD key score1 member1 score2 member2 ...:向有序集合添加一个或多个成员,或更

                                                                                    新已存在成员的分数。

ZREM key member      :移除有序集合中的一个或多个成员。

ZRANGE key start stop [WITHSCORES]       :获取有序集合中指定分数范围的成

                                                                                    员。

ZREVRANGE key start stop [WITHSCORES]      :获取有序集合中指定分数范围的成员,

                                                                                    分数从高到低排序。

ZRANK key member    :获取成员在有序集合中的排名。

ZSCORE key member        :获取成员的分数。

ZCARD key:获取有序集合的成员数。

ZCOUNT key min max:获取有序集合中指定分数范围内的成员数。

ZRANGEBYSCORE key min max [WITHSCORES]:获取有序集合中指定分数范围内的成员。

六、缓存击穿、缓存穿透、缓存雪崩产生原因以及常用解决方法

(一)缓存击穿

1.原因

某些热点key 到达了过期的时间点,此时刚好有大量的并发请求需要查询这个key,从而导致并发请求直接打到了数据库,这就是缓存击穿

2.解决方案

(1)提前将热门数据放入Redis缓存

(2)对热门key进行监控

(3)对不同级别的key设置不同的缓存时间

(4)设置分布式锁

(二)缓存穿透

1.原因

由恶意攻击导致,黑客通过伪造非法的id,查询数据库中不存在的key,导致经过Redis缓存时:判断key 不存在,则直接查DB,最终导致所有请求全部达到了DB中,造成缓存穿透

2.解决方案

(1)缓存一个特定的值,代表数据库中不存在,如空值

(2)使用Redis布隆过滤器:如果不存在那就一定不存在,如果存在则不一定存在

(3)设置有规律的id,如果不满足规则条件则拦截

(三)缓存雪崩

原因1

大量key 同时过期,导致所有请求全部打到DB中

解决方案1

(1)缓存时间最好不要设置一样,可以上下波动一个阈值

(2)服务降级

原因2

缓存中间件直接宕机

解决方案2

(1)限流

(2)熔断

(3)建立高可用缓存集群

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

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

相关文章

电脑软件:推荐四款非常好用的电脑磁盘分析工具

一、WizTree WizTree 是一款Windows下磁盘空间分析工具。它可以快速扫描并分析你的电脑硬盘驱动器中文件和文件夹,并以可视化块状的方式展示哪些文件和文件夹使用的磁盘空间最多。这样你就可以很方便找到占用磁盘空间大的文件。 WizTree的特点 ● 磁盘空间利…

6. STM32之TIM实验--编码器接口()--(实验5:PWM驱动直流电机)

这篇文章是通用定时器的最后一章节,也就是编码器接口,主要是用来进行对精确测量旋转角度或速度的负载进行精确控制。 STM32 编码器模式详解-CSDN博客 STM32——编码器测速原理及STM32编码器模式_龙邱512编码器stm32历程-CSDN博客 代码可根据这个进行编…

如何批量创建文件夹并命名?6个一键批量创建的方法

如何批量创建文件夹并命名?在快节奏的现代工作环境中,时间成为了最宝贵的资源。面对海量的数据与文件,如何高效地组织与管理,成为了提升工作效率的关键。为了节省时间,批量创建文件夹并命名,成为了一项至关…

人工智能之人脸识别(face_recognition)

文章目录 face_recognition 介绍主要功能**与opencv联系联系检测人脸切割人脸提取人物关键特征计算人脸的欧几里得距离计算人脸匹配程度总结 face_recognition 介绍 face_recognition 介绍 face_recognition 是一个非常流行的 Python 库,专门用于人脸识别任务。它基…

Java学习路线:JUL日志系统(二)使用Properties配置文件

目录 认识properties 使用properties编写日志配置文件 认识properties 之前的学习中,我们学习了使用XML配置文件,但是XML的读取实在有些麻烦。那有没有更简单的方式来配置文件呢? 答案是:使用Properties配置文件 在这里了解pro…

【数据库】elasticsearch

1、架构 es会为每个索引创建一定数量的主分片和副本分片。 分片(Shard): 将索引数据分割成多个部分,每个部分都是一个独立的索引。 主要目的是实现数据的分布式存储和并行处理,从而提高系统的扩展性和性能。 在创建索…

Qt——常用控件

前言:本篇文章,将分享Qt中常用的,具有代表性的一些控件。 一.按钮类控件 在前边的文章中我们也多次分享过PushButton按钮,但Qt中并非只提供这一种按钮。 在Qt中,QPushButton并非直接继承自QWidget,QAbstr…

硬件基础06 滤波器——无源、有源(含Filter Solutions、Filter Pro、MATLAB Fdatool)

推荐设计RC无源滤波器使用,数字滤波器可以使用MATLAB,有源滤波器使用Filter Pro。 一、Filter Solutions 1、软件资源及安装教程如下 FilterSolutions14.1.rar资源 (1)、双击FS14_1_0.exe进行安装;不要安装到中文路…

js WebAPI黑马笔记(万字速通)

此笔记来自于黑马程序员,pink老师yyds 复习: splice() 方法用于添加或删除数组中的元素。 注意: 这种方法会改变原始数组。 删除数组: splice(起始位置, 删除的个数) 比如:1 let arr [red, green, b…

docker安装低版本的jenkins-2.346.3,在线安装对应版本插件失败的解决方法

提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、网上最多的默认解决方法1、jenkins界面配置清华源2、替换default.json文件 二、解决低版本Jenkins在线安装插件问题1.手动下载插件并导入2.低版本jenkins在…

spark-on-k8s 介绍

spark-on-k8s 介绍 摘要 最近一段时间都在做与spark相关的项目,主要是与最近今年比较火的隐私计算相结合,主要是在机密计算领域使用spark做大数据分析、SQL等业务,从中也了解到了一些spark的知识,现在做一个简单的总结&#xff…

React教程(详细版)

React教程(详细版) 1,简介 1.1 概念 react是一个渲染html界面的一个js库,类似于vue,但是更加灵活,写法也比较像原生js,之前我们写出一个完成的是分为html,js,css&…

鸿蒙开发:自定义一个车牌省份简称键盘

前言 之前针对车牌省份简称键盘,在Android系统中搞过一个,当时使用的是组合View的形式,考虑到最后一个删除按钮单独占两个格子,做了特殊处理,单独设置了权重weight和单独设置了宽度width,既然鸿蒙系统的应…

电脑蓝屏不要慌,一分钟教你如何解决蓝屏问题

目录 一、检查硬件连接 二、更新驱动程序 三、修复操作系统错误 四、使用系统还原 电脑蓝屏是许多计算机用户经常遇到的问题之一。它可能由硬件故障、驱动程序问题、操作系统错误等多种原因引起。当电脑出现蓝屏时,很多人会感到困惑和焦虑。本文将向您介绍一些常见的解决方…

推荐!一些好用的VSCode插件

那些好用的VSCode插件 前言1、Auto Close Tag(自动补全标签)⭐2、Auto Rename Tag(自动更新标签)⭐3、Chinese(简体中文)⭐4、Git History (查看 Git 提交历史)⭐5、GitLens (增强 Git )6、open in browser (快速预览 )⭐7、Vetur ( Vue相关 )⭐8、Beautify ( 美化代码 )9、bac…

任务调度实现

我的后端学习大纲 XXL-JOB大纲 1、什么是任务调度 1.以下面业务场景就需要任务调度来解决问题: 某电商平台需要每天上午10点,下午3点,晚上8点发放一批优惠券某银行系统需要在信用卡到期还款日的前三天进行短信提醒某财务系统需要在每天凌晨0:10分结算前…

【SQL50】day 1

目录 1.可回收且低脂的产品 2.寻找用户推荐人 3.使用唯一标识码替换员工ID 4.产品销售分析 I 5.有趣的电影 6.平均售价 7.每位教师所教授的科目种类的数量 8.平均售价 1.可回收且低脂的产品 # Write your MySQL query statement below select product_id from Products w…

【数据结构与算法】第9课—数据结构之二叉树(链式结构)

文章目录 1. 二叉树的性质2. 链式结构二叉树3. 二叉树链式结构的4种遍历方式4. 二叉树节点个数5. 二叉树的叶子节点个数6. 二叉树第k层节点个数7. 二叉树的高度/深度8. 二叉树查找值为x的节点9. 二叉树的销毁10. 判断是否为完全二叉树11. 二叉树练习题11.1 单值二叉树11.2 相同…

ONLYOFFICE 8.2深度体验:高效协作与卓越性能的完美融合

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀ONLYOFFICE 8.2 🔍引言📒1. ONLYOFFICE 产品简介📚2. 功能与特点🍁协作编辑 PDF🍂…

一文带你了解,全国职业院校技能大赛老年护理与保健赛项如何备赛

老年护理与保健,作为2023年全国职业院校技能大赛的新增赛项,紧密贴合党的二十大精神,致力于加速健康与养老产业的蓬勃发展,并深化医养康养结合的服务模式。此赛项不仅承载着立德树人的教育使命,更通过竞赛的引领作用&a…