
redis
文章平均质量分 64
liulanba
这个作者很懒,什么都没留下…
展开
-
redis哨兵模式(Redis Sentinel)
这种机制能够实时监测Redis实例的状态,并在主节点故障时自动将一个从节点提升为新的主节点,以保证服务的连续性和稳定性,这就是哨兵模式。部署多个Redis哨兵节点,一般至少需要3个哨兵节点来确保系统的可靠性和故障转移的可行性。在每个哨兵节点上编辑配置文件 sentinel.conf,配置包括监控的Redis实例信息、监控频率、故障检测的超时时间、故障转移的策略等。可以通过查看哨兵节点的日志文件、使用 redis-cli 连接到哨兵节点获取信息,以及模拟主节点故障来验证哨兵模式的工作是否正常。原创 2024-06-26 23:17:32 · 715 阅读 · 0 评论 -
redis主从复制,连接两台电脑
主从复制,是指将一台Redis 服务器的数据,复制到其他的Redis 服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。主节点 (Master): 主节点是数据源,负责处理所有写操作和客户端连接。它将自己的数据更新发送给所有连接的从节点。从节点 (Slave): 从节点是主节点的复制品,只能进行读操作(默认情况下),并接收主节点的数据副本。从节点可以通过复制机制保持与主节点数据的一致性。原创 2021-05-12 13:21:56 · 6545 阅读 · 6 评论 -
八股取士--redis
Redis全称为:Remote Dictionary Server(远程数据服务),Redis是一种支持key-value等多种数据结构的存储系统。可用于缓存,事件发布或订阅,高速队列等场景。支持网络,提供字符串,哈希,列表,队列,集合结构直接存取,基于内存,可持久化。特点1:丰富的数据类型我们知道很多数据库只能处理一种数据结构:传统SQL数据库处理二维关系数据;MemCached数据库,键和值都是字符串;文档数据库(MongoDB)是由Json/Bson组成的文档。原创 2024-03-25 13:42:35 · 1436 阅读 · 0 评论 -
redis-大key优化
Redis 中的“大 key”问题指的是单个键(key)所存储的值(value)过大,导致影响 Redis 的性能和稳定性。通常情况下,Redis 的设计初衷是将数据存储在内存中,因此单个键的大小应该受到限制,以保证内存的高效利用和系统的稳定运行。原创 2024-03-20 12:56:57 · 937 阅读 · 0 评论 -
django--redis分布式锁
分布式锁的作用是确保在分布式系统中,对同一资源的操作只有一个客户端在执行,避免出现并发冲突的情况。事务的作用是保证一系列操作的原子性,即这些操作要么全部执行成功,要么全部不执行,避免中间出现异常或错误导致部分操作执行而部分不执行的情况。7.在事务执行成功后,使用 lock() 方法创建一个 Redis 锁,设置超时时间为 1 秒,并尝试获取锁。在事务开始之前,首先使用 watch() 方法监视锁的状态,如果锁已经被其他请求释放,则事务会回滚并重试。9.在完成关键代码的执行后,查询数据表,并返回给客户端。原创 2023-05-14 15:02:44 · 1299 阅读 · 0 评论 -
django--缓存
当用户请求到达Django的视图后,视图会先从数据库读取数据传递给模板进行渲染,返回给用户看到的网页。如果用户每次请求都从数据库读取数据并渲染,将极大降低性能,不仅服务器压力大,而且客户端也无法即时获得响应。如果能将数据库中读取的数据或动态生成的网页放到速度更快的缓存中,每次有请求过来,先检查缓存中是否有对应的资源,如果有,直接从缓存中取出来返回响应,节省读取数据和渲染的时间,不仅能大大提高系统性能,还能提高用户体验。原创 2023-05-14 14:53:28 · 805 阅读 · 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 · 6120 阅读 · 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 · 6744 阅读 · 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 · 4183 阅读 · 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 · 2456 阅读 · 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 · 2401 阅读 · 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 · 2386 阅读 · 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 · 3070 阅读 · 0 评论 -
Redis开发--订阅
Redis 订阅是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。Redis 客户端可以订阅任意数量的频道。当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端。命令作用SUBSCRIBE channel [channel …]订阅给定的一个或多个频道UNSUBSCRIBE [channel [channel …]]退订给定的频道PSUBSCRIBE pattern [patt原创 2021-04-15 16:52:38 · 2571 阅读 · 0 评论 -
Redis开发--Redis事务和Redis连接
事务Redis 事务可以一次执行多个命令1.批量操作在发送 EXEC 命令前被放入队列缓存。2.收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。3.在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。一个事务从开始到执行会经历以下三个阶段:开始事务命令入队执行事务代码实例:先以 MULTI 开始一个事务, 然后将多个命令入队到事务中, 最后由 EXEC 命令触发事务, 一并执行事务中的所有命令使用之前先用:keys *查看一下原创 2021-04-15 10:26:44 · 2442 阅读 · 0 评论 -
Redis开发--从入门到精通
Redis 是一个高性能的内存数据存储,它不仅仅是一个缓存系统,还提供了丰富的数据结构支持和持久化机制,广泛应用于缓存、消息队列、实时分析等场景。它的高性能、开源和灵活性使其成为现代互联网应用中不可或缺的组件。原创 2021-04-14 16:02:45 · 2530 阅读 · 0 评论