Redis
文章平均质量分 76
SuNew_bee
这个作者很懒,什么都没留下…
展开
-
Redis缓存穿透、缓存击穿、缓存雪崩
缓存穿透 key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会压到数据源,从而可能压垮数据源。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。 原因:1、Redis查询不到,直接访问数据库,而数据库也没有相关数据;2、出现大量非正常url访问。解决方案1、 对空值缓存:如果一个查询返回的数据为空(不管是数据是否不存在),我们仍然把这个空结果(null)进行缓存,设置空结果的过期时间会很短,最长不超过五分钟。2原创 2021-05-23 15:29:52 · 106 阅读 · 0 评论 -
Redis主从和集群
Redis主从复制主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主。作用:1、读写分离,性能扩展 2、容灾快速恢复 Redis 集群实现了对Redis的水平扩容,即启动N个redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数据的1/N。 Redis 集群通过分区(partition)来提供一定程度的可用性(availability): 即使集群中有一部分节点失效或者无法进行通讯, 集群也可以继续处理命令请求。原创 2021-05-23 15:05:30 · 308 阅读 · 0 评论 -
Redis持久化
RDB持久化 在指定的时间间隔内将内存中的数据集快照写入磁盘,它恢复时是将快照文件直接读到内存里。执行方式 Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到 一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。 整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能 如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失。具体流程 父线程fo原创 2021-05-22 23:27:00 · 121 阅读 · 0 评论 -
Redis事务
Redis事务定义 Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 Redis事务的主要作用就是串联多个命令防止别的命令插队。相关操作(Multi、Exec、discard) 从输入Multi命令开始,输入的命令都会依次进入命令队列中,但不会执行,直到输入Exec后,Redis会将之前的命令队列中的命令依次执行。 组队的过程中可以通过discard来放弃组队。事务的错误处理 事务的错误分两种原创 2021-05-22 21:13:19 · 81 阅读 · 0 评论 -
Redis基本数据类型
String类型 String是Redis最基本的类型,一个key对应一个value。String类型是二进制安全的。意味着Redis的string可以包含任何数据。比如jpg图片或者序列化的对象。String类型是Redis最基本的数据类型,一个Redis中字符串value最多可以是512M。常用指令set 添加键值对。*NX:当数据库中key不存在时,可以将key-value添加数据库*XX:当数据库中key存在时,可以将key-value添加数据库,与NX参数互斥*EX:key的超时原创 2021-05-22 20:51:35 · 265 阅读 · 1 评论