![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
小金子的夏天
不深思则不能造于道。不深思而得者,其得易失。
展开
-
缓存穿透、缓存击穿、缓存雪崩如何应对
参考连接:redis避免缓存穿透为什么缓存空对象而不是null? - 知乎缓存穿透:key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会到数据源,从而可能压垮数据源。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。 缓存击穿:key对应的数据存在,但在redis中过期,此时若有大量并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把后端DB压垮。 缓存雪崩:当.原创 2022-03-02 17:25:59 · 1925 阅读 · 2 评论 -
redis缓存与数据库结合使用的几个技术痛点
1. 缓存目的为了减轻数据库的压力,提升系统的性能。如果有用户请求过来,先查缓存,如果缓存中存在数据,则直接返回。如果缓存中不存在,则再查数据库,如果数据库中存在,则将数据放入缓存,然后返回。如果数据库中也不存在,则直接返回失败。2.缓存使用过程中可能存在的问题1.匿踪查询(前端在无权限的情况下无法通过登录注册返回信息探测相关信息)2.保证缓存和数据库的数据一致性3.缓存穿透、缓存击穿、缓存雪崩如何应对...原创 2022-03-02 17:07:12 · 754 阅读 · 0 评论 -
Redis的单线程和高性能
Redis的单线程Redis 的单线程主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,这也是 Redis 对外提供键值存储服务的主要流程。但 Redis 的其他功能,比如持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。Redis 使用单线程原因单线程编程容易并且更容易维护; Redis 的性能瓶颈不再 CPU ,主要在内存和网络; 多线程就会存在死锁、线程上下文切换等问题,甚至会影响性能。Redis 4.0 增加的多线程主要是针对一些大键值对的删除操作的命原创 2022-02-24 17:04:52 · 435 阅读 · 0 评论 -
redis 和 kafka的区别
(1)redis的主要作用是用以内存数据库,只是它提供的数据类型list可以用作消息队列而已而kafka是本身就是消息队列,消息的存储模型只是其中的一个环节,还提供了消息ACK和队列容量、消费速率等消息相关的功能,更加完善(2)redis 发布订阅除了表示不同的 topic 外,并不支持分组kafka每个consumer属于一个特定的consumer group(default group), 同一topic的一条消息只能被同一个consumer group内的一个consumer消费,但多个c原创 2022-02-24 17:03:00 · 4800 阅读 · 0 评论 -
redis安装
linux安装redis 完整步骤安装:1.获取redis资源 wget http://download.redis.io/releases/redis-4.0.8.tar.gz2.解压 tar xzvf redis-4.0.8.tar.gz3.安装 cd redis-4.0.8 make cd src make install PREFIX=/...原创 2019-07-08 16:58:35 · 96 阅读 · 0 评论 -
Redis数据类型
edis是一个开源,高级的键值存储和一个适用的解决方案,用于构建高性能,可扩展的Web应用程序。Redis有三个主要特点,使它优越于其它键值数据存储系统 -Redis将其数据库完全保存在内存中,仅使用磁盘进行持久化。 与其它键值数据存储相比,Redis有一组相对丰富的数据类型。 Redis可以将数据复制到任意数量的从机中。Redis的优点以下是Redis的一些优点。异常快 -...原创 2019-07-18 09:02:01 · 297 阅读 · 0 评论 -
Python操作Redis数据库
连接数据库StrictRedisfrom redis import StrictRedis# 使用默认方式连接到数据库redis = StrictRedis(host='localhost', port=6379, db=0)# 使用url方式连接到数据库redis = StrictRedis.from_url('redis://@localhost:6379/1')Co...原创 2019-07-08 18:06:51 · 289 阅读 · 0 评论 -
python 实现redis发布订阅功能
Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis 发布订阅(pub/sub)实现了消息系统,发送者(在redis术语中称为发布者)在接收者(订阅者)接收消息时发送消息。传送消息的链路称为信道。在Redis中,客户端可以订阅任意数量的信道。发布端代码:from redis import StrictRedis,Co...原创 2019-07-23 09:40:57 · 695 阅读 · 0 评论