草庐IT

Redis_Proxy

全部标签

Redis 报”OutOfDirectMemoryError“(堆外内存溢出)

Redis报错“OutOfDirectMemoryError(堆外内存溢出)”问题如下:一、报错信息:使用Redis的业务接口,产生OutOfDirectMemoryError(堆外内存溢出),如图:格式化后的报错信息:{ "timestamp":"2023-04-1722:46:36", "status":500, "error":"InternalServerError", "message":"Javaheapspace", "trace":"java.lang.OutOfMemoryError:Javaheap......}二、报错原因:源码分析:publicfinalclassPla

Redis 报”OutOfDirectMemoryError“(堆外内存溢出)

Redis报错“OutOfDirectMemoryError(堆外内存溢出)”问题如下:一、报错信息:使用Redis的业务接口,产生OutOfDirectMemoryError(堆外内存溢出),如图:格式化后的报错信息:{ "timestamp":"2023-04-1722:46:36", "status":500, "error":"InternalServerError", "message":"Javaheapspace", "trace":"java.lang.OutOfMemoryError:Javaheap......}二、报错原因:源码分析:publicfinalclassPla

抓取网络请求Network中的响应JSON数据,不用JS逆向和RPC,python selenium+browser-proxy

我们要获取这里的响应的JSON数据,但是它的请求头里面带有加密数据,需要js逆向,或者RPC才能拿到,现在介绍一种方法,免去以上过程就可以轻松拿到响应数据。显然上面的红框是加密数据。  下面正式开始下载browsermob-proxy文件首先要检查电脑是否安装了JDK8,高版本的好像不行,如果没有安装,则需要进行安装。这里不介绍了。下面下载两个东西:(1)python包的安装:pip3installbrowsermob-proxy(2)组件下载地址:https://github.com/lightbody/browsermob-proxy/releases,下载之后解压,后面会用到完整代码:i

关于解决Mac M1芯片 Redis 的 make test 中 trim on SET with big value in tests报错的方案

今天在解压完Redis的安装包之后,用maketest进行编译测试,发现出现了报错。 赶紧将报错信息复制下来,尝试在baidu、CSDN上搜索寻求解答,发现没有我这一种奇怪的报错信息。在开始科学上网之前,只能自己根据报错信息尝试解决。打开string.tcl文件找到相关触发报错的内容test{trimonSETwithbigvalue}{#setabigvaluetotriggerincreasingthequerybufrsetkey[stringrepeatA100000]#setasmallervaluebut>PROTO_MBULK_BIG_ARG(32*1024)Rediswillt

Redis 搭建主从集群

文章目录1.主从集群架构1.1准备实例和配置1.2启动1.3开启主从关系1.4测试2.主从同步原理2.1全量同步2.2增量同步repl_backlog原理2.3主从同步优化小结单节点的Redis并发能力有限,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离。1.主从集群架构共包含三个节点,一个主节点,两个从节点。这里我们会在同一台虚拟机中开启3个redis实例,模拟主从集群,信息如下:IPPORT角色192.168.150.1017001master192.168.150.1017002slave192.168.150.1017003slave注:192.168.150.10

【微服务】springboot整合redis哨兵集群使用详解

目录一、前言二、环境准备三、安装redis3.1前置准备3.1.1 下载安装包3.1.2准备依赖环境3.1.3上传并解压包3.2执行安装四、搭建redis主从集群4.1环境准备4.2搭建过程4.2.1创建实例文件目录4.2.2修改redis.conf配置文件4.2.3拷贝配置文件4.2.4 修改配置文件端口信息4.2.5 修改声明的IP地址4.2.6 启动redis实例4.2.7 开启主从关系五、搭建redis哨兵集群5.1添加哨兵配置文件5.1.1在三个目录下添加配置文件5.1.2拷贝配置文件5.2 启动哨兵集群5.3 故障模拟5.3.1哨兵控制台日志5.4 故障恢复5.4.1 哨兵控制台日

Redis淘汰策略(原创,干货!)

Redis淘汰策略Redis是一种内存数据库,为了保证内存的使用效率和性能,需要采用一些淘汰策略来管理内存中的数据。Redis支持多种淘汰策略,如下:noeviction:不淘汰任何数据,当内存满时,新的写入操作会报错。volatile-lru:淘汰设置了过期时间的数据中,最近最少使用的数据。这种策略适用于缓存数据,可以保证缓存中的数据都是最近使用过的。volatile-ttl:淘汰设置了过期时间的数据中,距离过期时间最近的数据。这种策略适用于一些临时性的数据,可以保证数据不会过期。volatile-random:淘汰设置了过期时间的数据中,随机选择一个数据进行淘汰。allkeys-lru:淘

基于redis实现秒杀并防止超卖

基于redis实现秒杀并防止超卖为什么基于redis针对秒杀商品库存为一个的情况setnx代码实现测试针对有多个库存的商品实现测试为什么基于redis因为所有redis的操作(这里指的是key的操作,像备份落盘之类的另算)都是单线程的,所以是线程安全的,但是有一点需要注意,这里线程安全仅仅指的是单个操作,如果有连续性的操作,需要使用lua脚本来保证原子性。针对秒杀商品库存为一个的情况比如抢单个红包,类似于美团的抢单等多个用户争抢一个资源的情况,这时我们可以使用redis分布式锁来实现比如setnx。setnxsetnx:向Redis中添加一个key,只用当key不存在的时候才添加并返回1,存在

关于两种使用Redis的随机抽取的方式的记录

        根据实际业务的需要,有时候会出现需要随机发放、随机抽取某些奖券、红包等等的业务场景,这些业务场景都是需要快速、随机、稳定的发放某些业务产品,在日常的使用中,我总结了两种,使用Redis来实现随机抽取业务场景的实现形式,特在此记录,以做备份和分享:    第一种:使用Redis的集合Set,来实现随机的抽取的功能,这就用到了Set的一个方法:        SPOPkey[count]移除并返回集合中的随机元素    使用方法是,提前将全部的内容都放到Redis中,在实现抽取时,全部使用Redis来实现,基本可以快速、稳定。但是,因为Set是无序且唯一的,如果需要抽取的产品中有重

关于两种使用Redis的随机抽取的方式的记录

        根据实际业务的需要,有时候会出现需要随机发放、随机抽取某些奖券、红包等等的业务场景,这些业务场景都是需要快速、随机、稳定的发放某些业务产品,在日常的使用中,我总结了两种,使用Redis来实现随机抽取业务场景的实现形式,特在此记录,以做备份和分享:    第一种:使用Redis的集合Set,来实现随机的抽取的功能,这就用到了Set的一个方法:        SPOPkey[count]移除并返回集合中的随机元素    使用方法是,提前将全部的内容都放到Redis中,在实现抽取时,全部使用Redis来实现,基本可以快速、稳定。但是,因为Set是无序且唯一的,如果需要抽取的产品中有重