Redis
文章平均质量分 87
奥里 给
这个作者很懒,什么都没留下…
展开
-
Redis学习十一
Redis的主从同步机制不仅可以让从库服务更多的读请求,分担主库的压力,而且还能在主库发生故障时,进行主从库切换,提供高可靠服务。不过,在实际使用主从机制的时候,我们很容易踩到一些坑。这节课,我就向你介绍3 个坑,分别是。原创 2022-11-16 11:27:52 · 219 阅读 · 1 评论 -
Redis学习十
Redis为了保证并发的正确性,提供的俩种方法,分别是加锁和原子操作。加锁操作和服务器的锁一样,修改和获取数据的时候先获得锁然后进行加锁直到数据更新完才会释放锁原子操作是指执行过程保持原子性的操作。原创 2022-11-16 09:14:34 · 191 阅读 · 0 评论 -
Redis学习九
在一些场景下,有些数据被访问的次数非常少,甚至只会被访问一次。当这些数据服务完访问请求后,如果还继续留存在缓存中的话,就只会白白占用缓存空间。这种情况,就是缓存污染。原创 2022-11-15 16:45:04 · 253 阅读 · 0 评论 -
Redis学习八
缓存穿透是指要访问的数据既不在 Redis 缓存中,也不在数据库中,导致请求在访问缓存时,发生缓存缺失,再去访问数据库时,发现数据库中也没有要访问的数据。否则,我们就无法实现同步直写。存击穿是指,针对某个访问非常频繁的热点数据的请求,无法在缓存中进行处理,紧接着,访问该数据的大量请求,一下子都发送到了后端数据库,导致了数据库压力激增,会影响数据库处理其他请求。我们假设应用先删除缓存,再更新数据库,如果缓存删除成功,但是数据库更新失败,那么,应用再访问数据时,缓存中没有数据,就会发生缓存缺失。原创 2022-11-15 13:52:33 · 116 阅读 · 0 评论 -
Redis学习七
把 Redis 用作缓存时,我们会把 Redis 部署在数据库的前端,业务应用在访问数据时,会先查询 Redis 中是否保存了相应的数据。此时,根据数据是否存在缓存中,会有两种情况。缓存命中:Redis 中有相应数据,就直接读取 Redis,性能非常快。缓存缺失:Redis中没有保存相应数据,就从后端数据库中读取数据,性能就会变慢。而且,一旦发生缓存缺失,为了让后续请求能从缓存中读取到数据,我们需要把缺失的数据写入Redis,这个过程叫作缓存更新。原创 2022-11-15 10:33:07 · 168 阅读 · 0 评论 -
Redis学习六
明明做了数据删除,数据量已经不大了,为什么使用 top 命令查看时,还会发现 Redis 占用了很多内存。这是因为,当数据删除后,Redis 释放的内存空间会由内存分配器管理,并不会立即返回给操作系统。所以,操作系统仍然会记录着给 Redis 分配了大量内存。这种情况主要造成了内存碎片(Redis 每次向分配器申请的内存空间大小不一样,这种分配方式就会有形成碎片的风险,而这正好来源于 Redis 的外因)可以使用INFO 命令来查询内存使用的详细信息。原创 2022-11-14 16:53:01 · 192 阅读 · 0 评论 -
Redis学习五
前面提到过Redis的对网络IO和键值对的写时在主线程上进行,如果在主线程上进行大的键值对的书写(耗时操作 集合的运算)就会造成主线程的阻塞。我们梳理了会导致 Redis 性能受损的 5 大阻塞点,包括集合全量查询和聚合操作、bigkey 删除、清空数据库、AOF 日志同步写,以及从库加载 RDB 文件。在这 5 大阻塞点中,bigkey 删除、清空数据库、AOF 日志同步写不属于关键路径操作,可以使用异步子线程机制来完成。原创 2022-11-14 14:18:09 · 135 阅读 · 0 评论 -
Redis学习四
现在的互联网应用基本上都是采用分布式系统架构进行设计的,而很多分布式系统必备的一个基础软件就是消息队列。原创 2022-11-14 13:42:34 · 125 阅读 · 0 评论 -
Redis学习三
虽然时间序列数据是按时间递增顺序插入 Hash 集合中的,但 Hash 类型的底层结构是哈希表,并没有对数据进行有序索引。所以,如果要对 Hash 类型进行范围查询的话,就需要扫描 Hash 集合中的所有数据,再把这些数据取回到客户端进行排序,然后,才能在客户端得到所查询范围内的数据。在使用MULTI和EXEC命令时,建议客户端使用pipeline,当使用pipeline时,客户端会把命令一次性批量发送给服务端,然后让服务端执行,这样可以减少客户端和服务端的来回网络IO次数,提升访问性能。原创 2022-11-14 11:22:07 · 176 阅读 · 0 评论 -
Redis学习二
Set 和 Sorted Set 都支持多种聚合统计,不过,对于差集计算来说,只有 Set 支持。Bitmap 也能做多个 Bitmap 间的聚合计算,包括与、或和异或操作。当需要进行排序统计时,List 中的元素虽然有序,但是一旦有新元素插入,原来的元素在 List 中的位置就会移动,那么,按位置读取的排序结果可能就不准确了。而 Sorted Set 本身是按照集合元素的权重排序,可以准确地按序获取结果,所以建议你优先使用它。原创 2022-11-04 11:50:36 · 120 阅读 · 0 评论 -
Redis学习一
Redis学习笔记一原创 2022-11-02 14:54:00 · 91 阅读 · 0 评论