随笔分类 -  Redis

摘要:1. 配置合理的最大内存限制 设置maxmemory参数:在Redis的配置文件中(通常是redis.conf),可以设置maxmemory参数来限制Redis实例可以使用的最大内存量。当达到这个限制时,Redis会根据配置的内存淘汰策略来释放部分内存空间。 2. 选择合适的内存淘汰策略 Redis 阅读全文
posted @ 2024-02-28 20:36 李若盛开 阅读(1070) 评论(0) 推荐(0) 编辑
摘要:一、基础命令 1、ping(心跳命令) 若看到PONG响应,则说明客户端与Redis的连接正常。 2、select(切换数据库) redis默认有 16 个数据库,默认使用的是0号DB。 3、dbsize(查看key数量) 查看当前数据库中 key 的数量。 4、flushdb(删除当前库中所有数据 阅读全文
posted @ 2024-02-07 22:06 李若盛开 阅读(136) 评论(0) 推荐(1) 编辑
摘要:这个错误提示是因为执行HSET命令时参数数量不正确导致,HSET只能设置一组key/value,设置多组则使用HMSET。 HSET命令需要指定三个参数:Hash键、Hash字段和字段值。如果参数数量不正确,Redis服务器将返回"ERR wrong number of arguments for 阅读全文
posted @ 2024-02-02 13:05 李若盛开 阅读(638) 评论(0) 推荐(0) 编辑
摘要:Redis负载高的原因可能有以下几个: 1)数据量过大:如果Redis中存储的数据量非常大,超过了Redis服务器的内存容量,会导致Redis负载过高。 2)访问量过大:如果Redis服务器面临大量的并发请求,超过了服务器处理能力,会导致负载过高。 3)慢查询:如果Redis中存在慢查询语句,会导致 阅读全文
posted @ 2024-01-30 13:19 李若盛开 阅读(149) 评论(0) 推荐(0) 编辑
摘要:Redis取数据慢的原因可能有以下几个: 1)网络延迟:Redis是一个基于网络的内存数据库,如果网络延迟高,会导致数据取得慢。 2)数据量过大:如果Redis中存储了大量的数据,每次取数据时需要遍历整个数据集,会导致取数据的速度变慢。 3)频繁的数据持久化:如果Redis开启了持久化功能,频繁地将 阅读全文
posted @ 2024-01-30 13:18 李若盛开 阅读(448) 评论(0) 推荐(0) 编辑
摘要:Redis是一个开源、内存中的数据结构存储器,用作数据库、缓存和消息中间件中。由于其明了的语法和功能的极其丰富,它是一种应用非常广泛的服务器,但即使Redis是一款十分受欢迎的数据库,也可能由于某些原因而导致Redis返回nil。 Redis 返回 nil 的原因可能有以下几种: 1)Redis实例 阅读全文
posted @ 2024-01-30 13:08 李若盛开 阅读(611) 评论(0) 推荐(0) 编辑
摘要:go-cache是一种内存中的key:value store/cache库,类似于Memcached,适用于在一台机器上运行的应用程序(单机应用程序)。 文档 https://pkg.go.dev/github.com/patrickmn/go-cache https://github.com/pa 阅读全文
posted @ 2024-01-29 20:03 李若盛开 阅读(772) 评论(0) 推荐(0) 编辑
摘要:原因:用的方法与redis服务器中存储数据的类型存在冲突。 比如:有一个key的数据存储的是list类型的,但使用redis执行数据操作的时候却使用了非list的操作方法。 对一个Redis键执行不兼容的操作,这个错误通常发生在以下情况: 1、类型不匹配:试图执行的操作与键存储的数据类型不匹配。例如 阅读全文
posted @ 2023-09-12 11:43 李若盛开 阅读(3410) 评论(0) 推荐(0) 编辑
摘要:一、Redis的持久化机制概述 RDB持久化机制: RDB持久化机制是一种将Redis在内存中的数据保存到磁盘上的方式,保存的数据是某个时间点的快照。 在RDB持久化机制中,Redis会周期性地将内存中的数据快照写入磁盘,保存为一个RDB文件。 通过快照的方式将数据保存在磁盘上,可以减小数据集的大小 阅读全文
posted @ 2023-04-27 15:09 李若盛开 阅读(342) 评论(0) 推荐(0) 编辑
摘要:大概场景是这样的,今天做了一些测试数据,下班了关机走人了, 第二天来打开一看,redis数据丢失了都没有了, 开始认为是redis自动数据过期了,但是我查看了没有设置过期时间, 要么就是redis自动清理了,要么是redis重启导致数据的丢下,结果是后者。 这是window下redis所有的配置文件 阅读全文
posted @ 2023-04-27 14:58 李若盛开 阅读(195) 评论(0) 推荐(0) 编辑
摘要:Redis的key是String类型的,如果Value如果也是String类型,相当于把两个字符串映射起来,即key-value。这里字符串不仅仅是传统意义上的字符串,例如“hello world”,也可以是JSON、HTML等。 1、string 字符串 //string key := "go2k 阅读全文
posted @ 2023-04-27 13:58 李若盛开 阅读(10) 评论(0) 推荐(0) 编辑
摘要:日常工作中存储对象信息时,一般有两种做法,一种是用 String存储,另一种是Hash 存储。既然两种数据结构都可以存储结构体信息。到底哪种更加合适呢? String 和 Hash 占用内存的比较 首先用代码先插入 10000 条数据,然后用可视化工具来看看内存的占用情况。 const Redis 阅读全文
posted @ 2023-04-27 13:05 李若盛开 阅读(222) 评论(0) 推荐(0) 编辑
摘要:1.将对象序列化后保存到Redis2.将对象用FastJSON转为JSON字符串后存储3.将对象用Hash数据类型存储(利用Hash存储对象,适用于全部字段的部分值经常变化) 阅读全文
posted @ 2023-04-27 12:52 李若盛开 阅读(731) 评论(0) 推荐(0) 编辑
摘要:一台master主机可以拥有多台slave从机,而一台slave从机又可以拥有多个slave从机,如此下去,形成强大的多级服务器集群架构(高扩展)。 主从复制的作用 读写分离,容灾恢复。一台主机负责写入数据,多台从机负责备份数据。在高并发的场景下,即便是主机挂了,可以用从机代替主机继续工作,避免单点 阅读全文
posted @ 2022-05-01 22:17 李若盛开 阅读(64) 评论(0) 推荐(0) 编辑
摘要:缓存击穿 缓存击穿是指单个热点数据失效时,针对这个数据的大量请求会穿透到持久层,并发量高了之后,数据库宕机。【定点打击】 解决方案: 1、若缓存数据基本不会发生更新,则可尝试将热点数据设置为永不过期。2、若缓存的数据更新不频繁,且缓存刷新的整个流程耗时较少的情况下,则可以采用基于 Redis、zoo 阅读全文
posted @ 2022-04-29 14:38 李若盛开 阅读(146) 评论(0) 推荐(0) 编辑
摘要:list对象编码是 压缩列表(ziplist) 或者 双向链表。 1、压缩列表(主要是为了节约内存) 当创建新的列表键时,列表会优先考虑使用压缩列表,因为双向链表占用的内存比压缩列表要多,并且在有需要的时候,才从压缩列表实现转换到双向链表实现。 ziplist存储在一段连续的内存上,所以存储效率很高 阅读全文
posted @ 2022-04-18 16:09 李若盛开 阅读(247) 评论(0) 推荐(0) 编辑
摘要:跳表是什么 跳表是在双向链表(什么是链表)之上加多层索引构成的,相对于双向链表,支持快速查找,更新,删除,所以适用于需求灵活的场景。 查找某一个数据时,先在索引里面查找出一个大的范围,然后再下降到原始链表中精确查找。 因为加一层索引后,查找一个结点需要遍历的次数减少了,所以查找效率大大提升。【空间换 阅读全文
posted @ 2022-04-14 11:54 李若盛开 阅读(3447) 评论(0) 推荐(0) 编辑
摘要:ZSet对象编码是ziplist或者 skiplist。 在同时满足以下两个条件时使用ziplist: 1)有序集合保存的元素数量小于128个; 2)有序集合保存的所有元素的长度小于64字节; 不能满足上面任何一个条件时则使用 skiplist 编码。 注意:以上两个条件也可以通过Redis配置文件 阅读全文
posted @ 2022-04-13 18:13 李若盛开 阅读(830) 评论(0) 推荐(0) 编辑
摘要:Redis 使用键值对存储数据,其中的值(对象)包括 5 种类型,即字符串、列表、哈希、集合、有序集合,这是 Redis 对外提供的,实际上,在 Redis 内部每种类型可能有 2 种或更多的内部编码实现。 1、字符串(string) 用于一些常规计数:微博数,粉丝数等 其中:embstr和raw都 阅读全文
posted @ 2022-04-13 16:53 李若盛开 阅读(508) 评论(0) 推荐(0) 编辑
摘要:Set对象编码是 intset 或者 hashtable。 1、intset intset 编码的集合对象使用整数集合作为底层实现,集合对象包含的所有元素都被保存在整数集合里面。 举个例子,以下代码将创建一个intset 编码集合对象: 2、hashtable hashtable 编码的集合对象使用 阅读全文
posted @ 2022-04-13 15:42 李若盛开 阅读(1412) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示