【Redis实战】黑马点评项目

发布时间:2022-11-26 REDIS JAVA 数据库
一、短信登录模块 1.发送短信验证码 1.controller请求: @Slf4j@RestController@RequestMapping(/user)public class UserController { @Resource private IUserService userService; @Resource private IUserInfoService userInfoService; /** * 发送手机验证码 */ @Post...

浅学一下Redis

发布时间:2022-11-27 缓存 REDIS 技术专栏 数据库
NoSQL概述 NoSQL特点 1、方便拓展(数据之间没有关系) 2、大数据量高性能(Redis一秒可以读11万次,写8万次) 3、数据类型多样性(不需要事先设计数据库,随取随用) NoSQL四大分类 Key:Value Redis memecache 文档 MongoDB:MongoDB是关系型数据库和非关系型数据库的中间产品,MongoDB是非关系型数据库中功能最丰富,最像关系型数据库的 ConthDB 列存储数据库 HBase 图关系型数据库 不是存储图片的数据库,存储的是关系 Neo4j,Info...

程序员必看内容连续集之 SpringBoot05 整合Druid&Redis

发布时间:2022-11-25 缓存 性能优化 数据库 REDIS SPRING BOOT
目录 一、整合Druid 二、集成redis之非注解式开发 三、集成redis之注解式开发 一、整合Druid 1、Druid简介: Druid是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、Proxool等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池,可以说是目前最好的连接池之一。 2、Druid的优点 ①结合了C3P0、DBCP、Proxool等DB池的优点; ②速度快,且稳定性好; ③可以很好的监控DB池连接和S...

Redis实战篇(四)分布式锁

发布时间:2022-11-26 REDIS 分布式 JAVA
一、定义 满足分布式系统或集群模式下 多进程可见并且互斥的锁。 特性: 多进程可见互斥高可用高性能安全性 二、实现 三、基于Redis原理 1、获取锁 互斥:确保只能有一个线程获取锁非阻塞:尝试一次,成功返回true,失败返回false SETNX lock thread1# 添加锁, NX互斥,EX设置超时时间SET lock thread1 NX EX 10 2、释放锁 手动释放超时释放 DEL lock EXPIRE lock 5 四、初级版本代码实现 public interface ILoc...

【Redis】11.缓存同步

发布时间:2022-11-29 缓存 REDIS # REDIS 数据库
1. 数据同步策略 想要实现MySQL与Redis数据同步,常见的方式有以下三种: 设置有效期:给缓存设置有效期,到期后自动删除缓存,使得下次查询缓存不命中,查数据库进而更新缓存 优点:简单、方便缺点:时效性低,缓存未过期之前可能会导致数据库数据和缓存数据不一致场景:更新频率较低,时效性要求低的业务 同步双写:在修改数据库的同时,直接修改缓存 优点:时效性强,缓存与数据库强一致缺点:有代码侵入,耦合度高;场景:对一致性、时效性要求较高的缓存数据 **异步通知:**修改数据库时发送事件通知,相关...

Redis key分布

发布时间:2022-11-30 缓存 REDIS DB 数据库
当redis内存过大时,如果查看key占用内存情况?如果确定哪些key好久没有被访问? 工作中遇到Redis内存占用90%,如果解决? 1.出现问题 2.下载内存监控工具RDR linux下载链接:https://github.com/xueqiu/rdr/releases/download/v0.0.1/rdr-linux windows下载链接:https://github.com/xueqiu/rdr/releases/download/v0.0.1/rdr-windows.exe  3.RDB...

redis配合lua脚本完成原子性操作

发布时间:2022-11-28 REDIS 数据库 LUA
redis配合lua脚本 redis是可以使用 外部的lua脚本 从而完成一系列操作的原子性 在做秒杀的时候,需要把 商品 的id 和 库存余量存入redis ,并且还需要建立一张表,表里面存入有谁已经买过了这个商品(一人一单需要用到) 实际上需要的最重要的参数就是:用户id 和 商品 id基本的流程如下: 首先判断库存是否充足不充足就直接返回失败,充足就去看这个人是不是买过了买过了则返回失败,没买过就扣减库存,并且将这个用户id存入redis的表中,代表这个人已经买过了 至于最终的存入mysql这样的数...

在Linux启动Redis服务

发布时间:2022-11-27 REDIS
运行Redis  # 启动 systemctl start redis # 停止 systemctl stop redis # 重启 systemctl restart redis # 查看状态 systemctl status redis 虚拟机上输入 ifconfig 查询ip地址     打开 RDM(名字随便写)  上个步骤如果链接不上Redis,就在linux虚拟机中 输入 systemctl stop firewalld.service 来停止redis 的防火墙。 然...

全新Redis6全部知识点,零基础入门

发布时间:2022-11-28 REDIS 中间件 JAVA 后端
1.分布式缓存Redis6安装 1.1.缓存和队列简介 高并发必备两大“核心技术” (1)什么是队列(MQ消息中间件) 全称:MessageQueue,主要用于程序与程序之间的通信(异步+解耦)。核心应用:(1)解耦:订单系统->物流系统(2)异步:用户注册同时发送优惠劵,和初始化操作(3)削峰:秒杀、日志处理 (2)什么是缓存 程序需要经常调用的数据放在内存中,因为内存中的响应非常快,使其快速调用,避免去数据库持久层去查。主要就是提高性能 DNS缓存、前端缓存、代理缓存服务器Nginx、应用程...

Redis学习笔记①基础篇_Redis快速入门

发布时间:2022-11-29 学习 JAVA REDIS 数据库
若文章内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系博主删除。 资料链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA(提取码:eh11)在线视频:https://www.bilibili.com/video/BV1cr4y1671t(视频合集共 175P,总时长:42:45:37) 写该系列博客的目的旨在学习巩固知识,方便个人在线阅览。博客的内容主要来自黑马程序员官方免费公开提供的资料里的文档笔记中的 PPT。 ...

手撸代码,Redis发布订阅机制实现

发布时间:2022-11-30 REDIS 服务/框架/技术 JAVA 数据库
🍁 作者:知识浅谈,CSDN签约讲师,CSDN原力作者,后端领域优质创作者,热爱分享创作 💒 公众号:知识浅谈 📌 擅长领域:全栈工程师、爬虫、ACM算法 手撸代码,Redis发布订阅机制实现总结 🤞这次都给他拿下🤞 正菜来了⛳⛳⛳ 🎈订阅频道 订阅某个topic,当对应的topic有消息的时候可以接收到对应的消息。 🍮订阅命令 subscribe命令订阅频道 C:\Users\93676\Desktop>redis-cli.exe -h 82.156.53.229 -p 63798...

redis主从复制

发布时间:2022-11-29 JAVA 数据库 REDIS
前言 redis使用主从复制,可以使读写分离,缓解服务器压力,增加容错率。 一、准备多份配置文件 redis6379.conf(主节点) include ./redis.confpidfile /var/run/redis_6379.pidport 6379dbfilename dump6379.rdb redis6380.conf redis6381.conf(从节点) include ./redis.confpidfile /var/run/redis_6380.pidport 6380dbf...

springboot2.x版本集成redis说明(lettuce、redisson)

发布时间:2022-11-27 REDIS
一、前言 目前主流springboot 2.x版本集成redis,主要使用lettuce和redisson。 lettuce作为新式的redis客户端,基于netty采用异步非阻塞式IO,是线程安全的,优点是提供了很多redis高级功能,例如集群、哨兵、管道等,缺点是api抽象,学习成本高。lettuce好是好,但是jedis比他生得早。 redission作为redis的分布式客户端,同样基于netty采用异步非阻塞式IO,是线程安全的,优点是提供了很多redis的分布式操作和高级功能,缺点是api...

Redis6(Remote Dictionary Server)

发布时间:2022-11-27 NOSQL REDIS NOSQL数据库 数据库
1.学习全景 2. NOSQL数据库 Not Only Structured Query Language 不仅仅是结构化查询语言 NoSQL 不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。 不遵循SQL标准。不支持ACID。远超于SQL的性能。 2.1 NoSQL适用场景 对数据高并发的读写海量数据的读写对数据高可扩展性的 2.2 NOSQL不适合的场景 需要事务支持基于sql的结构化查询存储,处理复杂的关系,需要即席查询。(用不着sql的和用了s...

Redis未授权访问漏洞引出的漏洞利用方式

发布时间:2022-11-30 REDIS 安全 数据库
redis未授权访问漏洞的成因和危害 漏洞定义 redis未授权访问漏洞是一个由于redis服务版本较低其未设置登录密码导致的漏洞,攻击者可直接利用redis服务器的ip地址和端口完成redis服务器的远程登录,对目标服务器完成后续的控制和利用。 漏洞成因 redis版本为4.x/5.0.5或以前的版本;redis绑定在0.0.0.0:6379,且没有进行添加防火墙规则避免其他非信任来源ip访问等相关安全策略,直接暴露在公网;没有设置密码认证,可以免密码远程登录redis服务 漏洞危害 攻击者可通过r...

解决缓存一致性问题

发布时间:2022-11-29 缓存 数据库 分布式 REDIS 缓存一致性 JAVA
如何解决缓存一致性问题 引入缓存,我们的很大原因是为了让经常访问而不常修改的数据快速响应,提高系统性能。除此之外还有一些对及时性、数据一致性不高的场景。 使用缓存我们还有一个问题就是,缓存的数据一致性问题,即保证数据库的数据与我们缓存的数据一致,如何解决,我们常用的解决方式有以下两种。 1.双写模式 双写就是,写入数据库的时候,也更新缓存中的数据。如果细分析下来这两个步骤不同顺序执行也会不同效果。 数据一致性考虑主要两点:在不考虑并发问情况的异常问题,在并发情况下的不安全问题。 不考虑并发问情况出现异常 ...

Redis学习(一)之 持久化、主从与哨兵架构

发布时间:2022-12-02 REDIS REDIS专题
jiaruredis持久化 RDB快照:在默认情况下, Redis 将内存数据库快照保存在名字为 dump.rdb 的二进制文件中。 你可以对 Redis 进行设置, 让它在“ N 秒内数据集至少有 M 个改动”这一条件被满足时, 自动保存一次数据集。比如说, 以下设置会让 Redis 在满足60 秒内有至少有 1000 个键被改动这一条件时, 自动保存一次 数据集: # save 60 1000 //关闭RDB只需要将所有的save保存策略注释掉即可。 ...

Redis学习笔记 ——(1)为什么要学习redis

发布时间:2022-11-27 学习 REDIS 数据库
Redis学习笔记 ——(1)为什么要学习redis Redis特性Redis使用场景Redis的安装 1. Redis特性 1.1 速度快 正常情况下,redis的执行效率非常快,官方给出的数字说读写性能可以达到10万/s,当然这也取决于机器的性能,下面总结一下Redis如此之快的原因。 Redis的数据都是放在内存中的Redis说用C语言实现的,一般C语言实现的程序执行效果会更快Redis使用了单线程架构,预防了多线程可能产生的竞争问题Redis的源码非常优秀 1.2 基于键值对的数据结构服务器 几乎...

使用我们的spring-cache 整合我们的Redis对我们的数据进行缓存

发布时间:2022-11-27 缓存 REDIS SPRING
①、什么是spring-cache: Spring Cache 是Spring 提供的一整套的缓存解决方案,它不是具体的缓存实现,它只提供一整套的接口和代码规范、配置、注解等,用于整合各种缓存方案,比如Redis、Caffeine、Guava Cache、Ehcache。使用注解方式替代原有硬编码方式缓存,语法更加简单优雅! ** ***附:我们的实体类一定要实现Serialable接口,不然肯定会报错 org.springframework.expression.spel.SpelEvaluationE...

使用workerman/redis-queue做队列(订阅)

发布时间:2022-11-29 缓存 REDIS WORKERMAN 数据库
前言 手上有一个短信群发通知功能,考虑到日后单个时间通知的手机号会有点多,故打算用workerman里的redis队列功能来实现(thinkphp6框架下)。 部署 1. 本地安装redis服务(如在本地调试的话),并在.env写入配置文件 [REDIS]#AUTH为密码,本地为空AUTH=HOST=127.0.0.1PORT=6379 2. compser安装workerman/redis-queue composer require workerman/redis-queue:1.0.10 3. 使...

Redis——》数据类型

发布时间:2022-11-30 REDIS 结构 类型
推荐链接:     总结——》【Java】     总结——》【Mysql】     总结——》【Redis】     总结——》【Spring】     总结——》【SpringBoot】     总结——》【MyBatis、MyBatis-Plus】 一、5种基本类型 数据类型底层结构适用场景string(字符串)简单动态字符串共享session分布式锁计数器限流抢购秒杀全局IDbitmap统计数据hash(哈希)压缩列表字典缓存用户信息list(列表)压缩列表双向列表消息队列文章列表set...

Redis集群 Lua Java 随机编号 用户编号

发布时间:2022-12-01 REDIS JAVA LUA
用户id主键递增的情况下,要为用户生产随机的用户编号,效果如下: 这是一种伪随机的方案,前缀随机,后面的编号递增 reids脚本 local prefix=0local exists = redis.call('EXISTS', KEYS[1])if exists == 1 then-- 随机出set的一个前缀 prefix= redis.call('SRANDMEMBER', KEYS[1])else-- 初始化set KEYS[1] 默认1至9 10个前缀 for i=1, 9 do r...

Redis图形界面可视化工具

发布时间:2022-11-28 REDIS 工作软件安装包
链接: https://pan.baidu.com/s/1NMqpPH6i27xFq2AkwE8eOQ?pwd=kvw9 这是一款连接redis服务器界面可视化工具,操作便捷,界面清爽 1、支持模糊搜索和精确搜索每一个key 2、默认加载key的数量是500 3、支持对连接配置的导入/导出 4、对当前连接的服务器、内存、状态有直观的数据呈现 5、支持每2秒自动刷新 但它也有缺点 1、通过key查询值,偶尔会很慢,无法得到值 2、同样的key通过Xshell 7查询,就能得到值 ...

docker安装redis

发布时间:2022-11-30 REDIS DOCKER 容器
docker pull redis创建目录和文件 mkdir -p /mydocker/redis/data vim /mydocker/redis/redis.confredis.conf内容 # bind 192.168.1.100 10.0.0.1# bind 127.0.0.1 ::1#bind 127.0.0.1protected-mode noport 6379tcp-backlog 511requirepass 000415timeout 0tcp-keepalive 300daemoniz...

使用Jedis 操作Reids(springboot)

发布时间:2022-12-02 REDIS
目录 一、Jedis简介 二、Redis数据库启动 三、基本操作 一、Jedis简介 Jedis 是一个常见的redis客户端连接工具,客户端与数据库建立socket进行连接。Jedis是线程不安全的,多个线程同时使用一个Jedis实例时,会造成数据污染、混乱,其原因是底层共用一个输入输出流。 二、Redis数据库启动    客户端连接测试 @Testpublic void test1(){ Jedis jedis=new Jedis(http://139.9.184.143:6379); ...

Redis对象及redisObject源码解析

发布时间:2022-12-02 REDIS REDIS从入门到放弃
写在前面 以下内容是基于Redis 6.2.6 版本整理总结 一、对象 前面几篇文章,我们介绍了Redis用到的主要的数据结构,如:sds、list、dict、ziplist、skiplist、inset等。 但是,Redis并没有直接使用这些数据结构来实现key-value数据库,而是基于这些数据结构构建了一个对象系统。包括字符串对象、列表对象、哈希对象、集合对象和有序集合对象五种类型的对象。每种对象都使用了至少一种前面提到的数据结构。 通过对对象的区分,Redis可以在执行命令前判断该对象是否能够执行...

Redis学习(二)之 Redis Cluster集群

发布时间:2022-12-02 学习 REDIS REDIS专题 数据库
        redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态,如果master节点异常,则会做主从切换,将某一台slave作为master,哨兵的配置略微复杂,并且性能和高可用等方面变现一般,特别是在主从切换的瞬间存在访问瞬断的情况,而且哨兵模式只有一个主节点对外提供服务,没法支持很高的并发,且单个主节点内存也不宜设置的过大,否则会导致持久化文件过大,影响数据恢复或主从同步的效率。         redis3.0以后推出了高可用集群模式redis c...

redis 使用技巧

发布时间:2022-11-26 REDIS
redis基础 单例 懒汉式 双重检查锁    redis基本查询使用  锁: lua脚本: hash用redis异步统计 hash类型重入锁 redis存储mysql表结构思路: hash类型:  key -field -value 结构   (key表名-field字段名-value值) String类型:key-value 结构     key(表名:字段名:ID)  value(值) String 类型存表:1、可以json对象方式。2、批量key形式 如下图: ...

【11/19-12/02(第七次)学习总结】

发布时间:2022-12-02 学习 JAVA REDIS
缓存击穿 部分key或者少数key过期,高并发访问redis,大量请求同时访问数据库。 解决方案 互斥锁 查询未命中加锁然后查询数据库构建缓存数据,写入缓存,释放锁。但是其他线程也会执行相同的操作,线程会一直阻塞。 可以借助redis中的setnx命令达成一个锁的功能。 逻辑过期 不设置过期时间,单独设置一个属性过期时间,第一个线程发现其过期之后,就加锁,开启一个新的线程,查询数据库构建缓存数据,写入缓存,然后直接返回旧的数据,其他线程同样获得不到锁,直接返回旧数据。 Apache JMe...

省市区三级联动查询

发布时间:2022-11-28 ELEMENTUI REDIS SPRING BOOT JAVA
省市县三级联动查询 ​ 所用技术有springboot、elementUI、redis、mybatisPlus 一、首先进入elementUI组件 ​ 然后找到Cascader 级联选择器组件,把这个组件复制到自己页面上 二、观察该组件的数据结构 ​ 这是为了知道在后端要传什么数据过来 三、编写后台接口 ​ 代码如下: @RestControllerpublic class ProvinceController { @Autowired private ProVinceService proV...

redis学习-哨兵模式

发布时间:2022-11-27 REDIS LINUX 服务器 数据库
自动选举老大的模式 概述:主从切换技术的方法是:当主服务器当即后,需要手动把一台服务器切换为主服务器,这就需要人工干预,费时费力,还会造成一段时间内服务不可用,这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。redis从2.8开开始正式提供了sentinel(哨兵)架构来解决这个问题 谋朝篡位的自动版,能够后台监控主机是否故障,如果故障了更具投票数自动将从库转为主库 哨兵模式是一种特殊的模式,首先 redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,他会独立运行。其原理是哨兵通过发送命令,等...

使用Redis给博客添加缓存

发布时间:2022-11-29 缓存 REDIS JAVA
作者:ChenZhen 博客地址:https://www.chenzhen.space/ 版权:本文为博主 ChenZhen 的原创文章,本文版权归作者所有,转载请附上原文出处链接及本声明。 如果对你有帮助,请给一个小小的star⭐ 首先我们先配置好springboot和Redis的环境确保连接上Redis,并且开启了基于注解的缓存。 参考我的文章:Redis整合springboot,使用RedisTemplate操作Redis 然后我们开始添加缓存,首先思考需要添加缓存在哪些地方。 我首先...

flink测试redis sink报错

发布时间:2022-11-29 大数据 REDIS FLINK
具体报错 1 [Source: Custom Source -> Sink: Unnamed (1/1)#0] ERROR org.apache.flink.streaming.connectors.redis.RedisSink - Redis has not been properly initialized: redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from th...

《Redis设计与实现》笔记

发布时间:2022-12-02 缓存 REDIS 数据库
第二章:简单动态字符串         1.Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组,以下简称C字符串),而是自己构建了一种名为简单动态字符串( simple dynamic string,SDS)的抽象类型,并将SDS用作 Redis的默认字符串表示。         Redis里面,C字符串只会作为字符串字面量( string literal)用在一些无须对字符串值进行修改的地方,比如打印日志:         redislog (REDIS_WARNING,Redis i...

超级详细,讲解分布式锁各种实现(附代码)(redis,zookeeper,mysql)

发布时间:2022-11-30 REDIS 分布式 ZOOKEEPER
关注我,看全文,绝对值 分布式理论 1、分布式编程是解决您可以使用多台计算机在单台计算机上解决的同一问题的艺术- 通常,因为问题不再适合单台计算机 2、分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理 更多的数据。 3、分布式系统的核心定理CAP,该定理指出了这三个性质: (1) 一致性:所有节点同时看到相同的数据。 (2) 可用性:节点故障不会阻止幸存者继续操作。 (3) 分区容错性:尽管由于网络和/或节点故障导致消息丢失, 系统仍继续运行 ...

一级缓存二级缓存的获取与更新顺序(一)

对于缓存,搞开发的小伙伴们经常用到,当我们需要查询缓存过的数据时,查询的顺序:一级缓存(也称本地缓存)如果查询到直接返回,查询不到接着查询二级缓存-->二级缓存(redis缓存)如果查询到数据则更新一级缓存后并返回数据,如果查询不到则查询数据库-->查询数据库,如果查询到数据则更新一级缓存,再更新二级缓存,然后返回数据--->如果一二级缓存都没有查询到我们需要的数据;  下面我们代码实操下编写的一级缓存组件:  下面我来看二级缓存的关键代码(这些代码可以更加实际的业务逻辑进行封装)...

NOAUTH Authentication required.

发布时间:2022-11-29 NOSQL REDIS 数据库
redis客户端连接成功,但是操作报异常:NOAUTH Authentication required.  其报错的意思要进行权限认证,其原因是没有输入密码。 解决方法1:格式为 : auth 密码 如下: 其中auth后面的是我的redis密码   解决方法2:使用密码认证登录 redis-cli -h 127.0.0.1 -p 6379 -a svNUKRtV%7xXCP6$j^dB1ePa  备注:推荐使用方法1,方法1比较安全 查看redis的版本号  info    ...

Vmware安装Centos7以及配置Redis问题

发布时间:2022-11-27 REDIS CENTOS LINUX UBUNTU
Vmware安装Centos7以及配置Redis问题 1、用户名不在sudoers文件中,此事将被报告的解决方法 su --login使用 su --login 先以root用户登录系统。 密码是你的root账号的密码cd /etc使用 cd /etc 进入/etc目录sudo vi /etc/sudoers使用 sudo vi /etc/sudoers 进行配置文件修改username(写成你自己的用户名) ALL=(ALL) ALL按键盘 i 键 ,修改配置文件,添加username(写成你...

redis 高可用(集群模式)

发布时间:2022-11-25 REDIS JAVA 数据库
集群模式原理 在3.0版本以后,虽然主从复制和哨兵模式保障了高可用,读写分离,通过从节点扩展了读并发能力,但是写能力和存储能力无法进行扩展。 海量数据需要将数据分片存储,每个节点负责存储整体数据的一个子集。集群至少三主三从。 槽位定位 槽位定位算法 CRC16(key) mod 2^14 跳转重定位 当客户端向任意节点访问获取数据时,若发现key所在槽位并不归属当前节点,它会向客户端发送跳转指令携带目标操作节点。客户端会向目标操作节点访问数据,并刷新本地槽位映射表缓存。 hash槽 2^14 为...

【框架学习(1) -- Linux下JDK及单机Redis部署】

发布时间:2022-11-29 REDIS 框架整合学习 JAVA
记录动手框架学习过程 目标: 先在Linux下搭建好各种框架,复制节点修改配置形成集群。 Linux安装jdk 首先创建一个虚拟机,配置修改好网络ip等配置。 查看当前Java版本 java -version 查看当前系统安装的jdk相关: rpm -qa | grep java 删除每一个 rpm -e --nodeps 要卸载的包 解压jdk: cd /home/software/javatar -zxvf jdk-8u202-linux-x64.tar.gz 修改环境变量 vi /etc/...

Redis lua_client 伪客户端生命周期

发布时间:2022-11-28 REDIS LUA
在《Redis 设计与实现》一书中,第13章关于伪客户端的描述: Lua脚本的伪客户端:服务器会在初始化时创建负责执行Lua脚本中包含的Redis命令的伪客户端,并将这个伪客户端关联在服务器状态结构的lua_client属性中。lua_client伪客户端在服务器运行的整个生命期中会一直存在,只有服务器被关闭时,这个客户端才会被关闭。 AOF文件的伪客户端:服务器在载入aof文件时,会创建用于执行AOF文件包含的redis命令的伪客户端,并在载入完成之后,关闭这个伪客户端。 问题:为什么lua_clien...

Redis 基础

发布时间:2022-11-30 缓存 REDIS 数据库
单介绍一下 Redis! 简单来说 Redis 就是一个使用 C 语言开发的数据库,不过与传统数据库不同的是 Redis 的数据是存在内存中的 ,也就是它是内存数据库,所以读写速度非常快,因此 Redis 被广泛应用于缓存方向。 另外,Redis 除了做缓存之外,也经常用来做分布式锁,甚至是消息队列。 Redis 提供了多种数据类型来支持不同的业务场景。Redis 还支持事务 、持久化、Lua 脚本、多种集群方案。 你可以自己本机安装 Redis 或者通过 Redis 官网提供的在线 Redis 环境来实...

【JMeter】BeanShell读写Redis

发布时间:2022-11-26 REDIS JMETER 数据库
前言 Jmeter本身有一个读redis的元件:Redis Data Set,但是此插件的功能仅类似于一个CSV Data Set Config,相当于一个前置配置,用于为每个线程、或者每一次循环提供一个参数化的值,这个值从redis的list或者set中读取,此插件对Redis仅只读,并不适用于在测试请求过程动态读写redis。 所以我们通过编写beanshell脚本去实现对redis动态的读写,需通过安装Redis Data Set插件,间接安装链接reids依赖的jar包。 读写Redis im...

阿里云云数据库Redis的基本使用(十六)

1.查看Redis实例的详细信息 直接点击实例名称即可跳转到详情页面。 首先看到的就是Redis的基本信息,可以看到实例ID和所在的可用区、版本、最大连接数、proxy的版本,Redis实例的运行状态等等信息。 在连接信息中可以看到连接Redis的方式,有直连访问、专有网络、公网访问,如果我们想要在windows中使用Redis连接工具使用Redis就需要配置一个公网IP,我们目前只需要让程序连接Redis即可,可以直接使用转有网络提供的域名,这个域名地址就是proxy代理提供的地址,可以直接在E...

Redis过期键及内存淘汰策略

发布时间:2022-12-02 REDIS REDIS从入门到放弃 数据库
写在前面 以下内容是基于Redis 6.2.6 版本整理总结 一、Redis数据库的组织方式 Redis服务器将所有的数据库 都保存在src/server.h/redisServer结构中的db数组中。db数组的每个entry都是src/server.h/redisDb结构,每个redisDb结构代表一个数据库。Redis默认有16个数据库。 1.1 redisServer结构定义 struct redisServer { /* General */ pid_t pid; ...

分布式锁的实现工具类

发布时间:2022-11-25 JAVAWEB 分布式 JAVA REDIS
分布式锁一般使用缓存实现的,下面提供一个工具类, 1、缓存配置: bootstrap.yml 或者 application.properties: spring.redis.cluster.nodes: x.x.x.x:6379spring.cache.redis.timeToLive: 360 2、添加pom依赖: <dependency> <groupId>com.alibaba.fastjson2</groupId> ...

【谷粒商城高级篇笔记】四、缓存

发布时间:2022-11-28 缓存 JAVA REDIS
1 缓存使用 为了系统性能的提升,我们一般都会将部分的数据放入缓存中,加速访问。而DB承担数据落盘工作。 1.1 哪些数据适合放到缓存中? 即时性、数据一致性要求不高的访问量大且更新频率不高的数据(读多,写少) 举例 电商类应用,商品分类,商品列表等适合缓存并加一个失效时间(根据更新频率来定),后台如果发布一个商品,买家需要5分钟才能看到新的商品一般还是可以接受的。 1.2 整合Redis 引入 spring-boot-data-redis-starter简单配置redis的host等信息spring...

redis主从复制原理

发布时间:2022-11-29 JAVA 数据库 REDIS
1全量同步 在slave初始化的时候会进行全量同步。怎样才算是初始化?下文会说。目前只需要知道全量同步就是master节点把自己的持久化文件中的数据全量同步到从节点。需要注意在全量同步完成后会进行一次增量同步 2增量同步 在全量同步的时候。redis的写入操作会依然被持久化。或者在内存。此时新加入的命令会加入到一个复制数据的缓存区。这个缓存区数据在全量同步后会进行增量同步。默认大小1m. repl-backlog-size 1mb 。每次数据有变更缓冲区都会增量同步。 3断点续传。 redis的slave...