
Redis
文章平均质量分 83
集合博主在 Redis 领域的经验博客。
王廷云的博客
一个热爱科学技术的人,喜欢创新,喜欢技术分享!
展开
-
【Redis】之缓存一致性
一般来讲,对于实时性和一致性要求高的数据不应该放入缓存中。缓存一致性问题即:缓存里的数据如何与数据库保持一致?原创 2023-07-08 16:40:05 · 951 阅读 · 0 评论 -
【Redis】之 RedLock 分布式锁
在多线程环境中,为了控制线程对资源并发访问和竞争,我们经常需要用到锁来进行控制。常用的锁例如 Java 自带的等。但这些锁只能用于单机系统中,如果涉及到多机器、多节点的分布式环境的资源竞争,就需要使用分布式锁了。原创 2023-06-16 18:59:40 · 10779 阅读 · 1 评论 -
【Redis】之密码设置和验证
一、查看现有的 Redis 密码:127.0.0.1:6379> config get requirepass1) "requirepass"2) ""二、设置 Redis 密码:# 设置密码127.0.0.1:6379> config set requirepass 123456OK# 查看结果127.0.0.1:6379> config get requirepass1) "requirepass"2) "123456"三、Redis 客户端使用密码验证原创 2021-10-09 17:51:53 · 6587 阅读 · 0 评论 -
【Redis】之 Redisson 分布式锁
三、Redisson1、分布式锁原理分布式锁解决的问题是:在分布式系统下,能够对所有不同服务器下的服务进行加锁。对于本地锁而已,本地锁由于是运行在自己服务进程上的锁,只能对自己的服务请求进行加锁;而分布式锁则可以保证所有服务只有一个服务可以加锁。在 Redis 中原始的加锁的方式是通过 NX(数据唯一) 和 EX(设置过期时间) 这两个参数实现的。NX 可以保证缓存数据唯一,设置成功了则表示获得锁;EX 则可以避免死锁问题。分布式锁加锁流程如下:# 所有服务进行抢锁set lock 1234原创 2020-10-19 23:21:02 · 1160 阅读 · 0 评论 -
【Redis】之分布式锁
1、Redis 的并发竞争 Key 问题所谓 Redis 的并发竞争 Key 的问题也就是多个系统同时对一个 key 进行操作,但是最后执行的顺序和我们期望的顺序不同,这样也就导致了结果的不同!推荐一种方案:分布式锁(zookeeper 和 redis 都可以实现分布式锁)。(如果不存在 Redis 的并发竞争 Key 问题,不要使用分布式锁,这样会影响性能)基于 zookeeper 临时有序节点可以实现的分布式锁。大致思想为:每个客户端对某个方法加锁时,在zookeeper上的与该方法对应的指定节原创 2022-04-06 19:35:28 · 1456 阅读 · 0 评论 -
【Redis】之雪崩、穿透、击穿
目录一、缓存雪崩二、缓存穿透三、缓存击穿四、缓存降级五、缓存热点 Key六、热点数据与冷数据七、缓存预热一、缓存雪崩缓存雪崩是指缓存同一时间大面积的失效,导致后面的请求都会落到数据库上,造成数据库短时间内承受大量请求而崩掉。解决方案:1、缓存数据的过期时间设置随机,防止同一时间大量数据过期现象发生;2、一般并发量不是特别多的时候,使用最多的解决方案是加锁排队;3、给每一个缓存数据增加相应的缓存标记,记录缓存的是否失效,如果缓存标记失效,则更新数据缓存。二、缓存穿透原创 2022-04-06 19:26:49 · 422 阅读 · 1 评论 -
【Redis】之哨兵高可用集群方案
一、集群方案1、哨兵模式哨兵的介绍sentinel,中文名是哨兵。哨兵是 redis 集群机构中非常重要的一个组件,主要有以下功能:集群监控:负责监控 redis master 和 slave 进程是否正常工作。消息通知:如果某个 redis 实例有故障,那么哨兵负责发送消息作为报警通知给管理员。故障转移:如果 master node 挂掉了,会自动转移到 slave node 上。配置中心:如果故障转移发生了,通知 client 客户端新的 master 地址。哨兵用于实现 red原创 2022-04-06 17:48:48 · 5032 阅读 · 0 评论 -
【Redis】之 Redis 分区
一、为什么要做 Redis 分区Redis 是单线程的,想要提高多核 CPU 的利用率的话,可以在同一个服务器部署多个Redis 的实例,并把他们当作不同的服务器来使用。但在某些时候,一个服务器无论如何也是不够的, 所以,如果你想使用多个 CPU,你可以考虑一下分片(shard):分区可以让 Redis 管理更大的内存,Redis 将可以使用所有机器的内存;如果没有分区,你最多只能使用一台机器的内存;分区使 Redis 的计算能力通过简单地增加计算机得到成倍提升,Redis 的网络带宽也会随着计原创 2022-04-06 17:59:25 · 2358 阅读 · 0 评论 -
【Redis】之 Redis 事务
一、Redis 事务的概念Redis 事务的本质是通过MULTI、EXEC、WATCH等一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。总结说:redis事务就是一次性、顺序性、排他性的执行一个队列中的一系列命令。二、Redis 事务的三个阶段1、事务开始 MULTI2、命令入队3、事务执行 EXEC事务执行过程中,如果服务端收到有 EXEC、DISCAR原创 2022-04-06 17:40:58 · 839 阅读 · 0 评论 -
【Redis】之 Redis 持久化机制
一、前言持久化就是把内存的数据写到磁盘中去,防止服务宕机了内存数据丢失。Redis 提供两种持久化机制 RDB(默认) 和 AOF 机制。二、RDBRDB(Redis DataBase)是Redis默认的持久化方式。按照一定的时间将内存的数据以快照的形式保存到硬盘中,对应产生的数据文件为dump.rdb。通过配置文件中的save参数来定义快照的周期。优点只有一个文件 dump.rdb,方便持久化。容灾性好,一个文件可以保存到安全的磁盘。性能最大化,fork 子进程来完成写操作,让主原创 2022-04-06 17:12:35 · 1181 阅读 · 0 评论 -
【Redis】之过期删除策略和内存淘汰策略
一、Redis 过期删除策略类型我们都知道,Redis 是 key-value 数据库,我们可以设置 Redis 中缓存的 key 的过期时间,而 Redis 的过期策略就是指:当 Redis 中缓存的 key 过期了,Redis 如何处理。过期策略通常有以下三种:定时过期: 每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的CPU资源去处理过期的数据,从而影响缓存的响应时间和吞吐量。惰性过期: 只有当访问一个key原创 2022-04-06 17:29:46 · 6851 阅读 · 0 评论 -
【Redis】之数据类型与应用场景
Redis主要有5种数据类型,包括String,List,Set,Zset,Hash,满足大部分的使用要求数据类型可以存储的值操作应用场景STRING字符串、整数或者浮点数对整个字符串或者字符串的其中一部分执行操作 对整数和浮点数执行自增或者自减操作做简单的键值对缓存LIST列表从两端压入或者弹出元素 对单个或者多个元素进行修剪, 只保留一个范围内的元素存储一些列表型的数据结构,类似粉丝列表、文章的评论列表之类的数据SET无序集合添加、获取、移除单个元素原创 2022-04-06 12:29:01 · 1973 阅读 · 0 评论 -
【Redis】之 SpringBoot 项目整合 Redis 实战
一、缓存介绍1、为什么使用缓存为了提升系统性能,我们一般都会将部分数据放入缓存中,加速访问,而 DB 则承担数据落盘工作。数据放入缓存之后,下次查询数据时就直接从缓存中获取,而不用每次都查询数据库来获取数据,这样就能极大的提高我们系统的性能。那些数据适合放入缓存?即时性、数据一致性要求不高的访问量大且更新频率不高的数据(读多、写少)举例:电商类应用、商品分类、商品列表等适合缓存并设置一个缓存失效时间(根据数据更新频率来定),后台如果发布一个商品,数据中的数据已经更新了,但缓存中的数据还没原创 2020-10-19 22:11:06 · 557 阅读 · 0 评论 -
【Redis】之 Redis 简介与高性能原理
什么是 RedisRedis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库。Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。与传统数据库不同的是 Redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。另原创 2020-09-17 23:36:45 · 2375 阅读 · 0 评论