redis
文章平均质量分 84
简单简单小白
用心做人,快乐开发。
展开
-
Redis缓存与数据库如何保证一致性
如果对缓存命中率要求较高的话就得采用更新数据库再更新缓存的方案,如果对命令率要求不高则采用先更新数据库再删除缓存。前面也分析了这两种方案都有缺陷,都可能在并发情况下存在缓存与数据库不一致。那么针对这两种情况做下优化。原创 2023-12-28 14:10:30 · 1873 阅读 · 14 评论 -
Redis缓存雪崩、击穿、穿透
例子:一家电商网站在特定促销活动期间,大量商品信息缓存在Redis中,过期时间一致,导致在促销开始瞬间大量请求同时访问数据库。例子:一款在线游戏中,某个道具的信息存储在Redis中,但道具被大量用户同时请求,导致缓存未命中,所有请求都访问数据库。缓存击穿是指针对某个热点数据的请求在缓存中未命中,但请求量非常大,导致所有请求都直接访问数据库,增加了数据库负载。缓存穿透是指请求一个不存在于缓存中的数据,但是该数据在数据库中也不存在,导致大量无效请求直接访问数据库,浪费资源。原创 2023-09-27 22:53:24 · 626 阅读 · 7 评论 -
Redis的安装与基本使用
对于生产环境,建议在基于Linux的服务器上运行Redis,或者使用Windows上的Redis端口(这是与官方Redis不同的项目,不建议用于生产环境)。此外,我的知识截止日期是2021年9月,软件版本和说明可能已发生变化。为使此方法有效,你需要运行Windows 10版本2004或更高版本,或者Windows 11。Redis在Windows上没有官方支持,Redis的Windows版本目前稳定版为5.0,最初由微软维护,后来由tporadowski接手维护。我们这边用的是包里面自带的默认的配置文件。原创 2023-09-27 17:41:21 · 731 阅读 · 3 评论 -
认识Redis
Redis 是一种基于内存的数据库,对数据的读写操作都是在内存中完成,因此读写速度非常快,常用于缓存,消息队列、分布式锁等场景。Redis 提供了多种数据类型来支持不同的业务场景,比如 String(字符串)、Hash(哈希)、 List (列表)、Set(集合)、Zset(有序集合)、Bitmaps(位图)、HyperLogLog(基数统计)、GEO(地理信息)、Stream(流),并且对数据类型的操作都是原子性的,因为执行命令由单线程负责的,不存在并发竞争的问题。除此之外,Redis 还支持。原创 2023-09-21 20:48:09 · 494 阅读 · 4 评论 -
记录一次并发情况下的redis导致服务假死的问题
这里默认值是false,连接释放的时候先释放resource 然后再将dataSource置为null,那如果是并发的情况下话,那有可能再下一个线程进来的时候dataSource已经就是null了,在执行第2步的时候dataSource刚好被置为null,那这个时候就无法释放连接了。,给出的解决方案是升级jedis的jar包到2.10.2版本以上,换成高版本的以后问题果然就解决了。这里要注意一下的是jedis的版本跟spring-data-redis的版本是有一个对应关系的。查看redis的源码。.....原创 2022-08-29 15:27:45 · 39486 阅读 · 0 评论 -
Redis学习笔记(一)
Redis学习笔记一、redis集群1.Redis集群是一个实现分布式并且允许单点故障的Redis高级版本。为了数据的一致性,会牺牲部分数据允许单点故障。二、redis的master-slave (主从复制)1.Redis在master是非阻塞模式,也就是说在slave执行数据同步的时候,master是可以接受客户端的请求的,并不影响同步数据的一致性,然而在slave端是阻塞模式的原创 2015-12-21 17:46:14 · 534 阅读 · 0 评论 -
redis设计与实现读书笔记(第一章)
Redis设计与实现读书笔记(第一章)一:内部数据结构与对象1.sds的定义:Struct sdshdr{//记录buf数组中已使用的字节的数量 保存字符串的长度Int len;//数组中未使用的字节的数量Int free;//字节数字,用于保存字符串Char buf[];} SDS遵循C字符串以空字符结尾。2.SDS与C字符串的区别C语言的原创 2016-09-30 15:59:10 · 538 阅读 · 0 评论