草庐IT

redis_instance

全部标签

Redis源码之SDS简单动态字符串

Redis是内存数据库,高效使用内存对Redis的实现来说非常重要。看一下,Redis中针对字符串结构针对内存使用效率做的设计优化,版本为Redis3.2。一、SDS的结构 c语言没有string类型,本质是char[]数组;而且c语言数组创建时必须初始化大小,指定类型后就不能改变,并且字符数组的最后一个元素总是空字符 '\0' 。以下展示了一个值为 "Redis" 的C字符串:Redis没有直接使用C语言的字符串方式,而是构建了一种简单动态字符串(Simpledynamicstring,SDS)的类型,Redis中的字符串底层都是使用SDS结构进行存储,比如包含字符串的键值对底层都是使用SD

Spring boot连接Redis服务器报Unable to connect to Redis问题分析与解决

1.UnabletoconnecttoRedis:翻译:无法连接到Redis很明显是Redis服务未被连接比如我这个,是因为打连接不上本地端口:6379。呢么就有两种可能:1.查看Springboot的yml文件,看是否连接的是6379端口如下:没问题是本地的6379,呢么就只有一种情况是因为本地的服务没打开。打开Redis服务正确开启服务如何重新启动Springboot项目,就ok喽!总结一下,这是Redis新手常见的一种问题,个人觉得主要是因为马虎粗心造成的,哈哈哈,恰恰我就遇见了!这就是我今天的分享解决问题方案。有问题可以私聊或留言。     

Redis场景应用:详细实现网站粉丝关注与展示的功能

🏆作者简介,黑夜开发者,全栈领域新星创作者✌,阿里云社区专家博主,2023年6月csdn上海赛道top4。多年电商行业从业经验,对系统架构,数据分析处理等大规模应用场景有丰富经验。🏆本文已收录于PHP专栏:PHP进阶实战教程。🏆另有专栏PHP入门基础教程,希望各位大佬多多支持❤️。文章目录🚀一、背景🚀二、数据库结构设计🔎2.1用户表(users)🔎2.2关注关系表(follows)🚀三、实现步骤和代码🔎3.1创建数据库和表🔎3.2安装Redis和相关PHP扩展🔎3.3编写PHP代码🍁3.3.1连接Redis和MySQL数据库🍁3.3.2关注功能实现🍁3.3.3定时同步关注数据到数据库🍁3.3.

当redis“缓存“遇上“击穿“

前言一、什么是缓存击穿?二、解决方案三、实现扯皮:本文原载于我的个人博客zixin.com前言最近在学Redis想象一下,当你的应用程序需要处理大量的请求时,Redis就像是一位快递小哥,把数据飞快地送到用户手中。用Redis不学其原理,就像四大名著不看红楼梦,说明这个人文学造诣和自我修养不足,他理解不了这种内在的阳春白雪的高雅艺术,他只能看到外表的辞藻堆砌,参不透其中深奥的精神内核,他整个人的层次就卡在这里了,只能度过一个相对失败的人生。一、什么是缓存击穿?在我们的业务中,经常会出现一些数据被频繁地访问的情况,例如在秒杀活动中。这些被频繁访问的数据被称为热点数据。当缓存中的某个热点数据过期时

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

关于解决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:淘