redis
文章平均质量分 90
sqyaa.
已在谷底,怎么走都是向上
展开
-
MySQL和redis特点以及超卖问题但是乐观锁会造成库存遗留问题还有连接超时用连接池解决
使用事务(Transaction):在 Redis 中可以使用 MULTI组队、EXEC、WATCH 等命令来创建事务,确保多个命令的原子性执行,避免并发操作导致的超卖问题。乐观锁+版本号+事务三特性。总的来说,要解决 Redis 中的超卖问题,关键在于保证对资源的操作是原子性的,可以通过事务、分布式锁、Lua 脚本等方式来实现,确保在并发环境下数据的正确性和一致性。使用分布式锁:可以使用 Redis 的分布式锁来确保在对某个资源进行操作时只有一个客户端在操作,从而避免并发导致的超卖问题。原创 2024-03-21 08:52:37 · 427 阅读 · 0 评论 -
redis——持久化之RDB&AOF
数据放在硬盘上即持久,内存上并不持久,当进程重启或者主机重启,根据数据是否仍然存在去判断持久性。redis是内存数据库,数据放在内存中,要想持久,就得把数据放在硬盘。但是redis的优势是快,快依赖于数据存储在内存。为了数据快,还是得存在内存,但是保证持久还是得存在硬盘中。于是redis内存也存,硬盘也存!来数据时,两边都存入(但是不一定完全一样)。内存负责查数据,硬盘负责每次重启的时候将数据恢复内存。优点是既保证高效又保证持久化,缺点就是开销空间。原创 2024-03-08 00:48:45 · 552 阅读 · 0 评论 -
SpringBoot整合Redis——实现点赞功能
标签系统:可以将每个标签作为Set的一个元素,然后用Set进行标签的各种操作,比如求交集、并集、差集等,以便于实现文章、商品等的分类和搜索。去重:Set中的元素不能重复,因此可以用来存储去重后的数据。原创 2023-12-13 20:59:03 · 1149 阅读 · 4 评论 -
redis——单线程工作模型
需要注意的是,虽然Redis是单线程的,但它允许在不同的进程或服务器上运行多个实例,以提高可扩展性和性能。虽然Redis是单线程的,但它可以处理大量的请求,并支持每秒数百万级别的操作。redis的单线程模型指的是只使用一个线程去处理所有命令请求,并不是说redis进程服务器只有一个线程, 也有多个线程,多个线程用于处理网络IO。当多个请求同时到达redis服务器,redis的单线程模型就保证了当前收到的请求指令是串行执行的,例如,在学校,下课,大家都跑去饭堂, 都去排米饭,此时还是要在窗口处排队的。原创 2023-12-04 12:44:47 · 107 阅读 · 1 评论 -
redis—— 渐进式遍历
之前学过key* 获取所有的key,但是这个操作可能会一次性得到太多的key,阻塞redis服务器,所以不建议在生产环境中使用。KEYS *命令需要遍历整个数据库中的所有键名,这对于大型的 Redis 数据库来说会非常耗时和资源消耗。KEYS *命令会阻塞 Redis 服务器的主线程,这意味着在执行这个命令期间,Redis 将无法处理其他客户端的请求。安全问题:如果在生产环境中误操作使用KEYS *命令,可能会导致非常严重的安全问题。原创 2023-11-27 23:17:56 · 400 阅读 · 1 评论 -
redis的过期策略以及定时器的实现
基于 redis 实现分布式锁为了避免出现不能正确解锁的情况通常都会在加锁的时候设置一下过期时间.(所谓的使用redis 作为分布式锁就是给 redis 里写一个特殊的 key value)1.redis 中并没有采取 定时器 的方式来实现过期 key 删除2.如果有多个 key 过期,也可以通过一个定时器来高效/节省cpu的前提下来处理多个 key ~~通过惰性过期和定期过期策略的结合,Redis可以高效地管理键的过期,并保持内存的合理使。expire作用是给指定的 key 设置过期时间。原创 2023-11-21 15:52:31 · 206 阅读 · 2 评论 -
Redis的特性以及使用场景
是一个基于客户端-服务器架构的在的,属于NoSQL的一种。它可以用作,具有很高的灵活性和多样化的应用场景。作为一种内存数据库,Redis将数据存储在内存中,因此能够实现非常快速的读写操作。与磁盘存储相比,内存存储能够大幅提升数据的访问速度。这使得Redis成为一个系统,能够将频繁访问的数据存储在内存中,从而提高读取性能。此外,Redis还提供了丰富的数据结构支持,包括字符串、哈希表、列表、集合和有序集合等,使得它不仅可以简单地存储键值对,还可以处理复杂的数据结构,满足各种不同的需求。原创 2023-11-13 00:30:01 · 386 阅读 · 3 评论