
Redis
文章平均质量分 59
Charlie__ZS
这个作者很懒,什么都没留下…
展开
-
Redis-集群
Redis Cluster就是部署多台Redis主节点,这些节点之间平等没有主从之说,同时对外提供。单节点的Redis并发能力是有限的,要想进一步提高Redis的并发能力就要搭建集群,实现。主从复制有一个缺点,不能保证redis的高可用,主节点宕机后就丧失了写数据的能力。哨兵会监听主从节点的状态,当master节点发生故障的时候,会自动从剩下的slave节点中一个新的master。,主节点负责写操作,从节点负责读操作。来实现的,共识算法就是让分布式系统中的节点就某个问题达到共识。主节点的自动故障恢复。原创 2025-04-12 02:44:56 · 339 阅读 · 0 评论 -
Redis-出现的问题
设置了过期时间,当Key过期的时候,恰好这时间点对这个Key有大量的并发请求,这些大量并发的请求可能会瞬间把数据库压垮。对于过期key,Redis采用的是定期删除+惰性删除。但是针对于大量key集中过期,可以给key。机制,Redis会在后台异步删除过期的key,不会阻塞主线程的运行。或者缓存服务器宕机,导致大量的请求访问数据库,对数据库造成很大压力。,这将导致据每次请求都要到数据库去查询,对数据库造成了巨大的压力。遇到过缓存击穿的问题,在给热门商品信息设置了过期时间。原创 2025-04-12 02:37:07 · 210 阅读 · 0 评论 -
Redis-事务
Redis的设计更倾向于性能,而不是为了像数据库一样,保证事务的一致性而且牺牲性能。Redis的事务用的并不多,通过Lua脚本也可以保证多个命令执行的原子性,并且性能还会更好。因为通过Lua脚本,它会将多个命令打包,一起放到Redis的服务端进行执行。,这些队列中的命令才会执行。在这个过程中如果某一个命令发生异常,不会导致所有的命令回滚,而是忽略异常命令,继续执行其它命令。数据库的事务就是开启事务,然后执行数据库的一系列操作,如果没有异常就会提交事务,如果出现异常就会回滚事务。原创 2025-04-12 02:32:37 · 312 阅读 · 0 评论 -
Redis-内存
Redis先采用定期删除每隔一段时间就抽取一定数量的key来检查和删除,然后采用惰性删除,在获取key的时候,redis会检查key是否过期,然后删除。这样即对内存友好,又对CPU友好。Redis在过期字典中保存数据过期时间,查询key的时候首先判断是否在过期字典中,如果没有的话直接返回,如果存在的话需要判断key是否过期。的时候对过期时间进行检查,这种方式对CPU友好,但是对内存不友好,可能出现大量的过期key没有被访问,从而不会被删除。子进程完成重写之后,会将重写缓冲区的命令写入到新的AOF文件中。原创 2025-04-12 02:29:56 · 404 阅读 · 0 评论 -
Redis-数据类型
属性,检查空间大小是否满足,如果不满足就会动态扩充。SDS获取字符串长度的时间复杂度是O(1),直接获取len属性的值即可。String可以存储各种类型的数据,比如:整数、字符串、浮点数和图片等。如果List为空,Redis服务器会等List中有新数据或者等待超时之后返回。如果对象中某些字段经常变化或查询,使用Hash存储很适合。同时Hash比String更节省空间,特别是字段较多且长度较短时。简单动态字符串,SDS可以避免缓冲区溢出,在修改字符串的时候会先判断。,用在不能重复的场景。(存放0、1数组)、原创 2025-04-12 02:22:33 · 239 阅读 · 0 评论 -
Redis-分布式锁
选取的新的主节点就会再次获取锁,这就不满足锁的互斥性了。唯一的key使用:用户token+商品的url和重复提交的key,保证当前用户当前商品重复下单操作只能提交一次,其他通过setNX保存失败的都忽略掉。Reids实现的分布式锁是不可以重入的,但是Redission实现的分布式锁是可以重入的。,当重入次数大于0时,需要判断该占有锁的线程和请求获取锁的线程是否为同一个,如果是同一个就将重入次数加1。这样主节点宕机之后,就不能在其它节点上加锁了,红锁的实现复杂,性能很差。当用户下单的时候,可以通过。原创 2025-04-12 02:17:05 · 340 阅读 · 0 评论 -
Redis-基本概念
Reids是非关系型数据库,主要用于分布式缓存。由于数据存储在内存,所以速度很快。Redis支持五种基本的数据类型分别是StringListSetZSet和Key-Value键值对。Redis是单线程,I/O多路复用。2.除了Redis还知道哪些分布式缓存吗?除了Redis还有Memcached,Redis和Memcached都是基于内存的数据库,速度都很快。Memcached只支持Key-Value数据类型,而Redis支持多种数据类型。Memcached将全部的数据存储在内存中,不支持数据持久化。原创 2025-04-12 02:12:04 · 436 阅读 · 0 评论