redis
文章平均质量分 67
liulanba
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Redis 缓存问题详解及解决方案
本文介绍了四种常见的缓存问题及解决方案:1)缓存击穿(热点Key突然过期),通过互斥锁或逻辑过期解决;2)缓存穿透(查询不存在数据),采用布隆过滤器或缓存空对象;3)缓存雪崩(大量Key同时过期),建议随机过期时间或多级缓存;4)缓存预热(系统冷启动),通过预加载热点数据实现。文章提供了Python实现代码,并对比了各问题的核心原因和关键技术,最后建议组合使用多种方案并配合监控系统。这些方法能有效提升系统性能,避免缓存相关故障。原创 2025-08-08 00:44:46 · 446 阅读 · 0 评论 -
Redis持久化存储
Redis提供RDB快照和AOF日志两种持久化机制。RDB通过定时保存二进制快照,配置灵活但可能丢失数据;AOF记录所有写操作命令,安全性更高但文件较大。Redis 4.0+支持混合模式,结合两者优势。关键配置包括保存策略、同步频率和自动重写条件。持久化状态可通过INFO命令监控,数据恢复时优先加载AOF文件。性能优化建议:禁用不必要的RDB规则、使用SSD存储、合理设置缓冲区大小。常见故障处理包括解决OOM错误和修复损坏的AOF文件。原创 2025-08-07 23:52:16 · 883 阅读 · 0 评论 -
redis哨兵模式(Redis Sentinel)
这种机制能够实时监测Redis实例的状态,并在主节点故障时自动将一个从节点提升为新的主节点,以保证服务的连续性和稳定性,这就是哨兵模式。部署多个Redis哨兵节点,一般至少需要3个哨兵节点来确保系统的可靠性和故障转移的可行性。在每个哨兵节点上编辑配置文件 sentinel.conf,配置包括监控的Redis实例信息、监控频率、故障检测的超时时间、故障转移的策略等。可以通过查看哨兵节点的日志文件、使用 redis-cli 连接到哨兵节点获取信息,以及模拟主节点故障来验证哨兵模式的工作是否正常。原创 2024-06-26 23:17:32 · 783 阅读 · 0 评论 -
redis主从复制,连接两台电脑
主从复制,是指将一台Redis 服务器的数据,复制到其他的Redis 服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。主节点 (Master): 主节点是数据源,负责处理所有写操作和客户端连接。它将自己的数据更新发送给所有连接的从节点。从节点 (Slave): 从节点是主节点的复制品,只能进行读操作(默认情况下),并接收主节点的数据副本。从节点可以通过复制机制保持与主节点数据的一致性。原创 2021-05-12 13:21:56 · 6636 阅读 · 6 评论 -
八股取士--redis
Redis 核心知识摘要 Redis 是一个开源的内存键值数据库,属于 NoSQL 类型,支持字符串、列表、哈希等多种数据结构。相比 Memcached,Redis 功能更丰富,支持持久化和复杂数据类型。其高性能源于内存操作、单线程模型和非阻塞 I/O。Redis 提供 RDB 快照和 AOF 日志两种持久化方式,各有优缺点,生产环境建议同时使用。 高可用方案包括主从复制、哨兵模式和集群模式。Redis 支持事务但不保证原子性,与传统数据库事务有本质区别。适用场景包括缓存、会话存储和实时排行榜等,但不适合大原创 2024-03-25 13:42:35 · 1557 阅读 · 0 评论 -
redis-大key优化
Redis 中的“大 key”问题指的是单个键(key)所存储的值(value)过大,导致影响 Redis 的性能和稳定性。通常情况下,Redis 的设计初衷是将数据存储在内存中,因此单个键的大小应该受到限制,以保证内存的高效利用和系统的稳定运行。原创 2024-03-20 12:56:57 · 1065 阅读 · 0 评论 -
django--redis分布式锁
分布式锁的作用是确保在分布式系统中,对同一资源的操作只有一个客户端在执行,避免出现并发冲突的情况。事务的作用是保证一系列操作的原子性,即这些操作要么全部执行成功,要么全部不执行,避免中间出现异常或错误导致部分操作执行而部分不执行的情况。7.在事务执行成功后,使用 lock() 方法创建一个 Redis 锁,设置超时时间为 1 秒,并尝试获取锁。在事务开始之前,首先使用 watch() 方法监视锁的状态,如果锁已经被其他请求释放,则事务会回滚并重试。9.在完成关键代码的执行后,查询数据表,并返回给客户端。原创 2023-05-14 15:02:44 · 1445 阅读 · 0 评论 -
django--缓存
当用户请求到达Django的视图后,视图会先从数据库读取数据传递给模板进行渲染,返回给用户看到的网页。如果用户每次请求都从数据库读取数据并渲染,将极大降低性能,不仅服务器压力大,而且客户端也无法即时获得响应。如果能将数据库中读取的数据或动态生成的网页放到速度更快的缓存中,每次有请求过来,先检查缓存中是否有对应的资源,如果有,直接从缓存中取出来返回响应,节省读取数据和渲染的时间,不仅能大大提高系统性能,还能提高用户体验。原创 2023-05-14 14:53:28 · 845 阅读 · 0 评论 -
redis集群-局域网中两台电脑通信
之前使用局域网下两台电脑进行通信,redis主从部署,连接两台电脑 但是是一个主从复制的模式,从机无法给主机发送信息,因此,考虑另开一个redis,用于从机向主机发送信息#####redis配置使用了两台PCPC1(主控端)ip1:192.168.64.110 port:6379(控制PC2的IP1)ip2:10.104.64.110 port:6377修改文件:redis.windows.confbind 192.168.64.110port 6379复制redis.wi原创 2021-05-18 14:58:32 · 6202 阅读 · 3 评论 -
Python实现-两台PC利用多进程分别进行redis的接收和发送
使用redis订阅可以让两台电脑通信,但是只能一台作为发送端,一台作为接收端,类似于C/S模式,如果想让两台都可以发送并接受,则需要通过多进程来实现:PC1的发送和PC2的接收对应一个频道,PC2的发送和PC1的接收对应另一个频道,使用多进程来并发:简单举个例子:pc1向pc2发送字符串,pc2收到后根据字符串进行处理,并将处理结果发送给pc1,原理很简单,直接上代码:pc1.py#PC2作为被控制端,先开始订阅并监听#PC1作为控制端,先开始发送#需要先启动PC2,PC1给PC2发送的最初3原创 2021-04-29 11:47:55 · 6825 阅读 · 1 评论 -
python-redis订阅监听
关于redis订阅可以参考:redis订阅首先创建两个py文件,一个用于订阅并监听(server.py),另一个用于发送信息(client.py)server.pyimport redisdef redis_listen(): rcon=redis.StrictRedis(host='127.0.0.1') p=rcon.pubsub() p.subscribe('redischat')#订阅 #监听 for i in p.listen():原创 2021-04-28 13:26:54 · 4276 阅读 · 0 评论 -
Redis开发--集合操作
Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的。Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)集合操作命令:1.sadd key membere1 [member2]向集合添加一个或多个成员2.scard key获取集合的成员数3.smembers key返回集合中的所有成员4.sdiff key1 key2返回第一个集合与其他集合之间的差异sdiffstore dst key1 [key2]返回给定集合的差集并存储在原创 2021-04-25 12:20:14 · 2503 阅读 · 1 评论 -
Redis开发--列表操作
1.lpush key value [value1]将一个或者多个值插入到列表头127.0.0.1:6379[1]> lpush mylist aa bb cc(integer) 3127.0.0.1:6379[1]> lrange mylist 0 21) "cc"2) "bb"3) "aa"2.lpop key移出并获取列表的第一个元素127.0.0.1:6379[1]> lpop mylist"cc"127.0.0.1:6379[1]> lrange原创 2021-04-16 18:15:43 · 2429 阅读 · 0 评论 -
Redis开发--哈希操作
1.hset key field value将哈希表 key 中的字段 field 的值设为 value2.hget key field获取哈希表 key 中的字段 field 的值127.0.0.1:6379[1]> hset myhash hashfield hashvalue(integer) 1127.0.0.1:6379[1]> hget myhash hashfield"hashvalue"3.hmset key field1 value1 [field2 valu原创 2021-04-16 17:03:44 · 2414 阅读 · 0 评论 -
Redis开发--Redis执行脚本
命令作用EVAL script numkeys key [key …] arg [arg …]执行lua脚本EVALSHA sha1 numkeys key [key …] arg [arg …]根据给定的 sha1 校验码,执行缓存在服务器中的脚本SCRIPT EXISTS script [script …]查看指定的脚本是否已经被保存在缓存当中SCRIPT FLUSH从脚本缓存中移除所有脚本SCRIPT LOAD script将脚本 script 添...原创 2021-04-16 14:22:24 · 3144 阅读 · 0 评论 -
Redis开发--订阅
Redis 订阅是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。Redis 客户端可以订阅任意数量的频道。当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端。命令作用SUBSCRIBE channel [channel …]订阅给定的一个或多个频道UNSUBSCRIBE [channel [channel …]]退订给定的频道PSUBSCRIBE pattern [patt原创 2021-04-15 16:52:38 · 2604 阅读 · 0 评论 -
Redis开发--Redis事务和Redis连接
事务Redis 事务可以一次执行多个命令1.批量操作在发送 EXEC 命令前被放入队列缓存。2.收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。3.在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。一个事务从开始到执行会经历以下三个阶段:开始事务命令入队执行事务代码实例:先以 MULTI 开始一个事务, 然后将多个命令入队到事务中, 最后由 EXEC 命令触发事务, 一并执行事务中的所有命令使用之前先用:keys *查看一下原创 2021-04-15 10:26:44 · 2467 阅读 · 0 评论 -
Redis开发--从入门到精通
Redis学习指南摘要 Redis是一款高性能的内存键值数据库,支持多种数据结构(字符串、哈希、列表、集合、有序集合)和高级功能(事务、发布订阅、Lua脚本)。指南涵盖从安装配置到实战应用的完整内容,包括: 核心特性:内存存储、原子操作、持久化机制(RDB/AOF) 集群方案:主从复制、哨兵模式、集群模式 性能优化:内存管理、命令优化、管道技术 典型应用场景:缓存系统、会话存储、实时排行榜等 最佳实践:键名设计、安全配置、监控维护 适合开发者快速掌握Redis核心知识,构建高性能应用系统。原创 2021-04-14 16:02:45 · 2585 阅读 · 0 评论
分享