队列 消息redis zset
redis实践经验总结
Redis内存配置 当Redis内存不足时,可能导致Key频繁被删除、响应时间变长、QPS不稳定等问题。当内存使用率达到80%以上时就需要我们警惕,并快速定位到内存占用的原因。 一般来说,会有以下几种占用内存的情况: 数据内存 是Redis最主要的部分,存储Redis的键值信息。主要问题是BigKe ......
消息队列
首先使用消息队列前,我们需要知道,消息队列是用来发送、接收数据的一个容器,简单的说:我们在某宝上买东西,这中间有一个快递的过程,而大多数情况下,我本人选择将我买的东西寄到某个代收点,派送员只需要按照我的要求将东西放到代收点就可以了,之后我有时间了才自己去取。消息队列就类似于这个代收点了,它能存取数据 ......
redis中的hash tag
在集群模式下,如果lua脚本同时操作多个key,可能会出现:CROSSSLOT Keys in request don't hash to the same slot的错误。 这种情况下,可以通过{...},来指定多个key使用相同的内容进行hash,例如:user:{123}:username和u ......
一文讲透消息队列RocketMQ实现消费幂等
这篇文章,我们聊聊消息队列中非常重要的最佳实践之一:消费幂等。 1 基础概念 消费幂等是指:当出现 RocketMQ 消费者对某条消息重复消费的情况时,重复消费的结果与消费一次的结果是相同的,并且多次消费并未对业务系统产生任何负面影响。 例如,在支付场景下,消费者消费扣款消息,对一笔订单执行扣款操作 ......
redis 基本使用
1.原理 单线程多路复用 2.存储数据类型 3.持久化 4.锁 5.发布订阅 6.事务 7.布隆过滤器 布谷鸟 8.主从 哨兵 9.sharding 分片引入 10.集群 11. 击穿 穿透 雪崩 12.spirng 中使用 高低阶API ......
nginx+lua+redis实现灰度发布
授人以鱼不如授人以渔.先学会用,在学原理,在学创造,可能一辈子用不到这种能力,但是不能不具备这种能力。这篇文章主要是沉淀使用nginx+lua+redis实现灰度,当我们具备了这种能力,随时可以基于这种能力和思想调整实现方案:比如nginx+lua+(其他数据源)、nginx+(其他脚本语言) ......
Redis-缓存一致性问题
要想保证缓存和数据库「实时」一致 当数据发生更新时,我们不仅要操作数据库,还要一并操作缓存,数据库和缓存都更新,又存在先后问题,那对应的方案就有 2 个: 先更新缓存,后更新数据库 先更新数据库,后更新缓存 先不考虑并发问题,正常情况下,无论谁先谁后,都可以让两者保持一致,但现在我们需要重点考虑「异 ......
kafka入门(四):kafka生产者发送消息
创建生产者实例和构建消息之后,就可以开始发送消息了。 发送消息主要有三种模式:发后即忘、同步、异步。 发后即忘: 就是直接调用 生产者的 send方法发送。 发后即完,只管往 kafka中发送消息,而不关心消息是否正确到达。 这种发送方式的性能最高,可靠性也最差。 producer.send(rec ......
redis系列--redis单机
Redis是单线程吗? Redis的单线程主要是指Redis的网络IO和键值对读写都是由一个线程来完成的,这也是Redis对外提供键值存储服务的主要流程。但redis的其他功能,比如持久化,异步删除,集群数据同步等,其实是由额外的线程执行的。 Redis单线程为什么还能这么快? 因为它所有的数据都在 ......
Docker Compose 快速搭建 Redis 单机版
Redis 是非常流行的缓存中间件,其具有功能强大和部署简单的优势,我们在 CentOS 上使用 yum 就能够在线安装 Redis。之所以要介绍使用 Docker 进行容器化部署 Redis ,主要原因是当前容器化部署是主流,而且能够保障服务器文件系统的整洁。 本篇博客主要介绍如何使用 docke ......
Hadoop Yarn 调度器多队列
1.容量调度器多队列 1.为何需要多队列 调度器默认就1个default队列,不能满足生产的要求。 1个队列在任务极限的情况下,容易资源耗尽。 特殊时期通过对任务的区分可以保证重要的任务队列资源充足 按照框架区分队列,如hive/spark/flink 每个框架的任务放入指定的队列(企业用的不是特别 ......
推荐一款Redis可视化工具:ARDM
还是那句话:出众的软件有很多,适合自己的才是最好的。 Another Redis Desktop Manager 🚀🚀🚀 更快、更好、更稳定的Redis桌面(GUI)管理客户端,兼容Windows、Mac、Linux,性能出众,轻松加载海量键值 🇨🇳Windows •可以在github 或 ......
Redis不同版本,内存分配,硬件的性能研究
Redis不同版本,内存分配,硬件的性能研究 前言 Konw more ! Do more ! Gain more ! 骨折之后开始减肥. 前段时间跳绳导致膝盖不舒服,现在改骑车和走路. 在有限的没人有烦的时间里,还是想能够多学习一些东西. 之前了解了 isolcpus 现在突然想内存分配可能也有性 ......
队列
队列 1 import queue 2 q=queue.Queue() #创建队列q 3 q.put(1) #队列加上一个1 4 print(q.qsize()) #查看当前队列长度 5 print(q.get()) #从队列里拿出一个 6 print(q.qsize()) #再次查看队列长度 队列 ......
Redis集群
集群 由于数据量过大,单个Master复制集难以承担,因此需要对多个复制集进行集群,形成水平扩展每个复制集只负责存储整个数据集 的一部分,这就是Redis的集群,其作用是提供在多个Redis节点间共享数据的程序集。 Redis集群是一个提供在多个Redis节点间共享数据的数据集 Redis集群可以支 ......
Docker部署Redis
1、拉取redis镜像 docker pull redis 2、创建redis配置文件 mkdir -p /mydata/redis/conf touch /mydata/redis/conf/redis.conf 3、启动redis镜像 docker run -p 6379:6379 --name ......
超越架构师!消息通知系统优化设计
5 收集联系信息流程 为发送通知,需收集各种信息如移动设备令牌、email、phone和第三方通道信息。 用于存储联系信息的简化的数据库表模式。它是个带有电子邮件、电话、设备令牌和外部通道的单个NoSQL DynamoDB表。Contacts table schema: device_tokens ......
Redis集群
1.描述 集群,即是Redis Cluster。其由多个redis节点组成,redis数据保存在这些节点中。这些节点分为主节点和从节点:只有主节点负责读写请求和集群信息的维护,从节点只负责主节点数据和状态的复制。 2.作用 数据分区:redis集群是将数据分散存到多个节点中的。具体存到哪个节点是根绝 ......
向mq写消息
1.基础版本 import org.apache.rocketmq.client.producer.DefaultMQProducer; import org.apache.rocketmq.common.message.Message; import com.alibaba.fastjson.JS ......
微信公众号开发C#系列-7、消息管理-接收事件推送
1、概述 在微信用户和公众号产生交互的过程中,用户的某些操作会使得微信服务器通过事件推送的形式通知到开发者在开发者中心处设置的服务器地址,从而开发者可以获取到该信息。其中,某些事件推送在发生后,是允许开发者回复用户的,某些则不允许 我们在上一篇微信公众号开发C#系列-6、消息管理-普通消息接受处理中 ......
Redis基础命令操作
一、基础命令 1.ping(心跳检查) ping //输入ping 命令,看到PONG响应,说明客户端与Redis的连接正常。 2.get/set(读写键值) set name xiaoHong //set key value 会将指定 key-value写入到DB。 get name //get ......
docker部署redis主从集群
1、创建数据目录(logs目录要给权限,要不然会报错) mkdir -pv /data/redis/(data,logs} chmod 777 /data/redis/logs 2、redis.conf 配置文件 -—-主从配置 master 节点配置 cd /data/redis vim redi ......
Redis相关漏洞
默认端口:6379 Redis是一套开源的使用ANSI C编写、支持网络、可基于内存亦可持久化的日志型、键值存储数据库,并提供多种语言的API。Redis如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问Redis以及读取Redis的数据。 RCE-CVE-2022- ......
Redis分布式锁的扩展方法
分布式锁代码 #region 秒杀业务测试 private static readonly string redisConnectionStr = "127.0.0.1:6379,connectTimeout=5000,allowAdmin=false,defaultDatabase=1"; /// ......
redis
redis对字符串的常用命令 set 设置 get 获取 del 删除 mset mget设置获取多个key/val incr incrby decr decrby 加/减 setnx msetnx 设置新的key/val key必须是原来不存在的 setex 对一个key设置有效时间 和val a ......
C# MessageBox (消息提示框)使用详解
若只需要显示消息,不需要根据点击按钮决定下一步干啥,则直接使用即可,如: MessageBox.Show(text, caption, buttons, icon); 若不仅需要显示消息,还需要根据点击的按钮决定下一步干啥,需要使用对话框的返回结果,一般使用如下代码: if(MessageBox.S ......
Helm Chart 部署 Redis 的完美指南
目录一、Helm介绍二、安装Helm三、配置Helm的repository四、部署chart(以部署redis为例)1. 搜索chart2. 拉取chart3. 修改values.yaml的一些配置(简单演示一下基本的配置)4. 启动chart5. 升级和回滚a. 升级b. 回滚 一、Helm介绍 ......
redis未授权
redis未授权 搭建环境 ubuntu安装并启动redis服务 wget http://download.redis.io/releases/redis-3.2.11.tar.gz#下载压缩包 tar xzf redis-3.2.11.tar.gz#解压 cd redis-3.2.11#进入目录 ......
Java-Redis是如何保证高可用的?
Java-Redis是如何保证高可用的? 高性能 基于内存的存储 Redis是基于内存的存储系统,所有数据都保存在内存中,这使得Redis可以快速读取和写入数据。与传统的基于磁盘存储的系统相比,Redis的读写性能更高。 单线程的设计 是单线程的设计,所有的读写请求都由同一个线程处理,避免了多 ......