Redis
文章平均质量分 94
redis
ximeneschen
这个作者很懒,什么都没留下…
展开
-
基于Redisson的Redis结合布隆过滤器使用
布隆过滤器的误判是指多个输入经过哈希之后在相同的bit位置1了,这样就无法判断究竟是哪个输入产生的, 因此误判的根源在于相同的 bit 位被多次映射且置 1。这种情况也造成了布隆过滤器的删除问题,因为布隆过滤器的每一个 bit 并不是独占的,很有可能多个元素 共享了某一位。此时我们查询一个没添加过的不存在的字符串inexistent-key,它有可能计算后坑位也是1/3/5 ,这就是误判了。如果这些点, 有任何一个为零则被查询变量一定不在, 如果都是 1,则被查询变量很 可能存在。原创 2023-07-18 14:38:16 · 1754 阅读 · 2 评论 -
redisson MultiLock原理及分布式锁的应用
一、前言基于 Redis 的 Redisson 分布式联锁 RedissonMultiLock 对象可以将多个 RLock 对象关联为一个联锁,每个 RLock 对象实例可以来自于不同的 Redisson 实例。当然,这是官网的介绍,具体是什么?一起看看联锁 MultiLock 使用以及源码吧!二、MultiLock 使用按照官方文档的说法,这里 Redisson 客户端可以不是同一个。当然,一般工作中也不会说不用一个客户端吧。三、加锁在阅读 MultiLock 加锁之前,小伙伴应该已经阅读过普通原创 2021-12-28 23:54:02 · 3742 阅读 · 4 评论 -
Springboot中的缓存Cache和CacheManager原理介绍
一、背景理解什么是缓存,为什么要用缓存?程序运行中,在内存保持一定时间不变的数据就是缓存。简单到写一个Map,里面放着一些key,value数据,就已经是个缓存了。所以缓存并不是什么高大上的技术,只是个概念,把要多次使用的东西存在一个变量里,时不时取出来使用,就达到了缓存的目的,缓存就是存放数据的容器。那为什么要用缓存呢,是因为要多次使用。一个程序总有一些数据是可预见被多次使用(预见的准不准就是常说的命中率)比如一个复杂的计算结果,一次数据库访问取得的数据等耗时耗资源的数据就能放入缓存,目的就是为了转载 2021-10-11 15:46:53 · 12950 阅读 · 1 评论 -
Redis 五种数据结构以及三种高级数据结构解析以及使用
1.set key value2.keys * //查询当前库所有键模糊查询转载 2021-10-05 22:30:53 · 1938 阅读 · 0 评论 -
redis集群搭建(基于docker)
一、Redis Cluster(Redis集群)简介redis cluster是Redis的分布式解决方案,在3.0版本推出后有效地解决了redis分布式方面的需求自动将数据进行分片,每个master上放一部分数据提供内置的高可用支持,部分master不可用时,还是可以继续工作的支撑N个redis master node,每个master node都可以挂载多个slave node高可用,因为每个master都有salve节点,那么如果mater挂掉,redis cluster这套机制,就会自动将某个sl原创 2021-08-10 16:49:28 · 389 阅读 · 0 评论 -
一致性哈希算法在分布式缓存中的应用
一、应用场景假设我们有一个网站,最近发现随着流量增加,服务器压力越来越大,之前直接读写数据库的方式不太给力了,于是我们想引入Redis作为缓存机制。现在我们一共有三台机器可以作为Redis服务器,如下图所示。二、要解决的问题一般来说我们在大规模访问,大并发流量下都会使用到分布式缓存,即将廉价机器部署在同一个子网内,形成多机器集群,然后通过负载均衡以及一定的路由规则进行读请求的分流,将请求映射到对应的缓存服务器上。如何对请求与缓存服务器之间进行精准映射,以及优雅的扩展,剔除缓存服务器是分布式缓存部署的转载 2021-08-10 12:36:57 · 222 阅读 · 1 评论 -
分布式事务原理
一、基础理论在讲解具体方案之前,我们有必要了解一些分布式事务所涉及到的基础理论知识。事务事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。事务应该具有 4 个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为 ACID 特性。分布式事务分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。例如在大型电商系统转载 2021-07-23 17:37:14 · 1939 阅读 · 0 评论 -
分布式锁的3种实现(数据库、缓存[redis]、Zookeeper)
锁是开发过程中十分常见的工具,在处理高并发请求的时候和订单数据的时候往往需要锁来帮助我们保证数据的安全。一、分布式锁的场景场景1.前端点击太快,导致后端重复调用接口。两次调用一个接口,这样就会产生同一个请求执行了两次,而从用户的角度出发,他是因为太卡而点了两次,他的目标是执行一次请求。场景2.对于高并发场景,我们往往需要引入分布式缓存,来加快整个系统的响应速度。但是缓存是有失效机制的,如果某一时刻缓存失效,而此时有大量的请求过来,那么所有的请求会瞬间直接打到DB上,那么这么大的并发量,DB可原创 2021-07-21 11:36:17 · 445 阅读 · 1 评论 -
Spring Cache
在WEB后端应用程序来说,耗时比较大的往往有两个地方:一个是查数据库,一个是调用其它服务的API(因为其它服务最终也要去做查数据库等耗时操作)。重复查询也有两种。一种是我们在应用程序中代码写得不好,写的for循环,可能每次循环都用重复的参数去查询了。这种情况,比较聪明一点的程序员都会对这段代码进行重构,用Map来把查出来的东西暂时放在内存里,后续去查询之前先看看Map里面有没有,没有再去查数据库,其实这就是一种缓存的思想。另一种重复查询是大量的相同或相似请求造成的。比如资讯网站首页的文章列表、电商网站首页的原创 2021-07-21 10:30:16 · 1331 阅读 · 2 评论 -
数据库与缓存数据一致性解决方案
一、 数据库与缓存读写模式策略的选择为什么使用缓存使用缓存是为了提高性能,增加并发性能如下图所示,我们在碰到需要执行耗时特别久,且结果不频繁变动的SQL,就特别适合将运行结果放入缓存。这样,后面的请求就去缓存中读取,使得请求能够迅速响应。并发如下图所示,在大并发的情况下,所有的请求直接访问数据库,数据库会出现连接异常。这个时候,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问数据库。不适用使用缓存的场景:数据量太大、数据访问频率非常低的业务都不适合使用原创 2021-07-20 16:22:54 · 1398 阅读 · 0 评论 -
Redis缓存穿透、击穿、雪崩、预热、更新、降级
Redis是高性能的分布式内存数据库,对于内存数据库经常会出现下面几种情况,也经常会出现在Redis面试题中:缓存穿透、缓存击穿、缓存雪崩、缓存预热、缓存更新、缓存降级。本篇分别介绍这些概念以及对应的解决方案。一、缓存穿透当查询Redis中没有的数据时,该查询会下沉到数据库层,同时数据库层也没有该数据,当这种情况大量出现或被恶意攻击时,接口的访问全部透过Redis访问数据库,而数据库中也没有这些数据,我们称这种现象为"缓存穿透"。缓存穿透会穿透Redis的保护,提升底层数据库的负载压力,同时这类穿透查询转载 2021-07-19 22:44:31 · 211 阅读 · 0 评论 -
docker安装redis及常用命令
一、选择最新版latest输入命令:docker pull redis:latest二、创建容器并设置密码输入命令:docker run --name redis-test -p 6379:6379 -d --restart=always redis:latest redis-server --appendonly yes --requirepass '123456’在这里插入图片描述注:-p 6379:6379 :将容器内端口映射到宿主机端口(右边映射到左边)redis-server –a转载 2020-08-08 00:45:08 · 1877 阅读 · 0 评论 -
基于Redis的分布式锁实现
本文转自一、分布式锁概览在多线程的环境下,为了保证一个代码块在同一时间只能由一个线程访问,Java中我们一般可以使用synchronized语法和ReetrantLock去保证,这实际上是本地锁的方式。但是现在公司都是流行分布式架构,在分布式环境下,如何保证不同节点的线程同步执行呢?实际上,对于分布式场景,我们可以使用分布式锁,它是控制分布式系统之间互斥访问共享资源的一种方式。比如说在一个分布式系统中,多台机器上部署了多个服务,当客户端一个用户发起一个数据插入请求时,如果没有分布式锁机制保证,那么那多原创 2020-06-19 13:40:28 · 388 阅读 · 0 评论 -
Redis主从复制(读写分离)
一、什么是主从复制主从复制,就是主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主。优点:读写分离,性能扩展,容灾快速恢复需要注意的时:在Redis2.6以后,slave只读模式是默认开启的,我们可以通过配置文件中的slave-read-only选项配置是否开启只读模式同时,从机下面也还能有自己的从机。二、主从复制的方式当master服务器与slave服务器正常连接时,master服务器会发送数据命令流给slave服务原创 2020-05-16 22:25:52 · 671 阅读 · 1 评论 -
Redis事务
一 、事务的意义Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。二、事务的作用主要作用就是串联多个命令防止别的命令插队三、Multi、Exec、discardMulti:组队、Exec执行从输入Multi命令开始,输入的命令都会依次进入命令队列中,但不会执行,直到输入Exec后,Redis会将之前的命令队列中的命令依次执行。discard:放弃组队四、事务的错误处理组队中某个命令出现了报告错误原创 2020-05-16 18:39:56 · 171 阅读 · 0 评论 -
Redis持久化
一、Redis为持久化提供了两种方式RDB:在指定的时间间隔能对你的数据进行快照存储。但最后一次持久化的数据可能丢失AOF:记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据。二、RDB方式Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那原创 2020-05-16 01:03:36 · 151 阅读 · 0 评论 -
Redis基本操作
指定地址端口直接进入交互模式:不停止运行改参数选择默认数据库原创 2020-04-24 11:56:35 · 172 阅读 · 0 评论 -
redis配置文件详解
## Generated by install_server.sh ### Redis configuration file example.##如果要让redis-server启动时加载该配置文件,需要在启动时#带上该配置文件,如下:# ./redis-server /path/to/redis.conf# Note on units: 如果需要存储空间,将以 1k 5GB 4M 这...原创 2020-04-23 11:26:33 · 193 阅读 · 0 评论 -
分布式Session管理
1.Session复制在支持Session复制的Web服务器上,通过修改Web服务器的配置,可以实现将Session同步到其它Web服务器上,达到每个Web服务器上都保存一致的Session。优点:代码上不需要做支持和修改。缺点:需要依赖支持的Web服务器,一旦更换成不支持的Web服务器就不能使用了,在数据量很大的情况下不仅占用网络资源,而且会导致延迟。适用场景:只适用于Web服务器比较少...原创 2020-04-20 14:40:48 · 253 阅读 · 0 评论 -
Redis简介
一、为何使用Redis在海量用户和 高并发的情况下:关系型数据库就会有瓶颈:性能瓶颈:磁盘I/O性能低下,难以支持高并发访问扩展瓶颈:数据关系复制,扩展性能差,,不便于大规模集群。解决思路:使用诸如Redis的Nosql数据库,优点:1.降低磁盘IO次数(缓存)2.去除数据间的关系(只存储数据,不存储关系)二、Redis的使用场景三、Redis常用数据类型1.Strin...原创 2020-04-15 21:52:38 · 251 阅读 · 0 评论