redis
文章平均质量分 88
redis:
windows环境搭建
linux环境搭建
主从复制
持久化
哨兵机制
雪崩效应
缓存穿透
♛薄情痞子♛
人生无非就是笑笑别人或被别人笑笑而已。
此博客仅供个人学习而用,如有侵权,请联系我,谢谢!!
展开
-
Redis缓存一致性
一、概述 Redis缓存机制的一致性就是说数据库的数据要跟Redis中的数据保持一致。二、实现方式 方式一:先更新数据库,再更新缓存场景 方式二:先更新缓存,再更新数据库场景 方式三:先删除缓存,再更新数据库的场景 方式四:先更新数据库,再删除缓存场景 方式五:最佳实现,数据异步同步三、详解 方式一: 当有两个线程A、B,同时对一条数据进行操作,一开始数据库和redis的数据都为tony,当线程A去修改数据库,将tony改为allen,然后线程A在修改转载 2021-08-02 16:38:06 · 108 阅读 · 0 评论 -
redis限流的3种实现方式
Redis限流的实现方式有3种,分别是:1、基于Redis的setnx的操作,给指定的key设置了过期实践;2、基于Redis的数据结构zset,将请求打造成一个zset数组;3、基于Redis的令牌桶算法,输出速率大于输入速率,就要限流。第一种:基于Redis的setnx的操作我们在使用Redis的分布式锁的时候,大家都知道是依靠了setnx的指令,在CAS(Compare and swap)的操作的时候,同时给指定的key设置了过期实践(expire),我们在限流的主要目的就是为了在单位时间.转载 2021-08-02 10:51:56 · 247 阅读 · 0 评论 -
Redis过期key的删除策略
本文转载于:https://blog.csdn.net/u013308490/article/details/83105470项目中有个接口要频繁调用查询数据库中的数据,为了降低数据库的压力,所以把一部分记录先缓存在redis中,对redis中的数据设置了期限。今天无意间发现一个问题,使用dbsize查询出来的数量,比实际缓存量要高一部分。用redis-cli keys '*'|wc -l获取到的数据和实际情况是一样的。如下面两图:对比发现,r...转载 2021-07-27 11:18:36 · 118 阅读 · 0 评论 -
redis分布式锁
实现思路获取锁的时候,使用setnx加锁,并使用expire命令为锁添加一个超时时间,超过该时间则自动释放锁,锁的value值为一个随机生成的UUID,通过此在释放锁的时候进行判断。 获取锁的时候还设置一个获取的超时时间,若超过这个时间则放弃获取锁。 释放锁的时候,通过UUID判断是不是该锁,若是该锁,则执行delete进行锁释放。相关命令命令 用法 SETNX SETNX key val当且仅当key不存在时,set一个key为val的字符串,返回1;若key存在,则什么都不原创 2021-06-22 15:33:29 · 552 阅读 · 0 评论 -
redis哨兵机制
1.概述Redis Sentinel是一个分布式系统,为Redis提供高可用性解决方案。可以在一个架构中运行多个 Sentinel 进程(progress), 这些进程使用流言协议(gossip protocols)来 接收关于主服务器是否下线的信息, 并使用投票协议(agreement protocols)来决定是否执行自动故 障迁移, 以及选择哪个从服务器作为新的主服务器。Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance) 该系统执行以下三个任务:监控转载 2021-06-22 10:48:08 · 467 阅读 · 0 评论 -
布隆过滤器
不知道从什么时候开始,本来默默无闻的布隆过滤器一下子名声大燥,在面试中面试官问到怎么避免缓存穿透,你的第一反应可能就是布隆过滤器,缓存穿透=布隆过滤器成了标配,但具体什么是布隆过滤器,怎么使用布隆过滤器不是很清楚,那今天我们就来把它说清楚,讲明白。缓存穿透...转载 2021-06-21 10:59:36 · 244 阅读 · 0 评论 -
redis事务
Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。 一个事务从开始到执行会经历以下三个阶段:开始事务。命令入队。执行事务。...转载 2021-06-18 17:42:57 · 45 阅读 · 0 评论 -
redis持久化
什么是redis持久化?Redis持久化就是将内存数据保存到硬盘。为什么要redis持久化?redis是基于内存的Key Value类型的NoSQL数据库,也就是说redis的数据是存在内存 中,如果突然宕机,数据就会全部丢失,因此必须有一种机制来保证redis在内存中的数据不会丢失,这种机制就叫redis持久化机制。redis持久化方案redis有两种持久化方式:Snapshotting(RDB) 和 Append-Only File(AOF),redis默认的持久化方式是RDB1原创 2021-06-11 18:03:01 · 1403 阅读 · 0 评论 -
redis 主从复制
搭建主从 主机(master),从机(slave)在从机slave上找到redis.conf文件,然后找到vim redis.conf,找到此行:slaveof <masterip> <masterport> 释义:<masterip>指的是主机master的ip地址,<masterport>指的是主机master的 端口找到此行将主机的ip和port加上去即可另外还有如果主机master服务...原创 2021-06-11 16:54:49 · 164 阅读 · 1 评论 -
redis基本数据类型、键(key)命令、备份与恢复
Redis数据类型redis基本数据类型有:string、list 、set 、zset、hash 除此之外还有:geo、HyperLogLog、bitmap、AtomicLongredis数据类型指的是redis中key-value的value数据类型1)、字符串 String2)、列表 List3)、集合 Set4)、有序集合 Zset5)、哈希 Hash6)、GEO7)、HyperLogLog8)、BitMap...原创 2021-06-08 18:00:24 · 1101 阅读 · 0 评论 -
Redis
Redis简介: 1、什么是Redis? redis是一个高性能基于内存的key-value类型的nosql数据库。Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis 与其他 key - value 缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据...原创 2021-05-17 15:40:14 · 78 阅读 · 0 评论 -
缓存穿透、缓存击穿与缓存雪崩解决方案
一、缓存流程图释义:前端发起请求,先查缓存是否有,缓存有则直接返回前端,缓存没有,则请求数据库,请求数据库成功,先存至缓存,然后在返回前端红线代表缓存没有查询到的情况,黑线代表缓存查询到的情况缓存的意义:数据库数据存入缓存,请求直接从内存中读取不用经过数据库(牵扯IO),减轻数据库压力并且提升性能。二、缓存穿透【穿透缓存、数据库,都无数据】定义:缓存穿透,是指缓存和数据库中都无数据,而用户不断发起请求;如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,转载 2021-05-17 11:07:53 · 146 阅读 · 0 评论