JAVA开发+非关系型数据库-Redis
文章平均质量分 70
Redis相关问题
冰冰很社恐
学无止境
展开
-
Redis的五种数据类型(string、hash 、list、set、zset)
Redis 提供了丰富的数据类型,常见的有五种:String(字符串),Hash(哈希),List(列表),Set(集合)、Zset(有序集合)。 String 是最基本的 key-value 结构,key 是唯一标识,value 是具体的值,value其实不仅是字符串, 也可以是数字(整数或浮点数),value 最多可以容纳的数据长度是 512M。普通字符串的基本操作: Hash 是一个键值对(key - value)集合,其中 value 的形式如: value=[{原创 2024-01-24 21:33:50 · 1542 阅读 · 0 评论 -
redis报错:WRONGTYPE Operation against a key holding the wrong kind of value
这个是在redis存取的数据时,存数据时的数据类型和取数据时的数据类型不一致导致的原创 2024-01-24 14:46:15 · 1734 阅读 · 0 评论 -
Redis面试题-缓存雪崩、缓存穿透、缓存击穿问题
大量访问这种数据时,数据库频繁查找数据,造成压力过大,从而产生故障。突发热点访问时,热点数据在Redis缓存中不存在或已过期。大量的对热点数据的访问,都将直接访问数据库,造成数据库访问压力短时激,从而增造成故障。Key设置过期标志,对即将过期数据进行提前更新,自动续期(类似击穿的解决方案):一个热点的key失效了,这时大量的并发请求直接到达数据库. (两边都不存在(皇帝的新装) (黑名单) (布隆过滤器)(黑名单) (布隆过滤器):将没有的数据介入黑马名单。对不存在的数据进行数据空值缓存。原创 2024-03-28 08:41:03 · 307 阅读 · 0 评论 -
Redis 和 Mysql 数据库数据如何保持一致性
我们在实际项目中经常会使用到Redis缓存用来缓解数据库压力,但是当更新数据库时,如何保证缓存及数据库一致性,一般我们采用延时双删策略。目前系统中常用的做法是一个查询接口,先查询Redis,如果不存在则查询数据库,并将结果放入到Redis中。为什么是删除缓存,而不是更新缓存呢?主要是如果缓存的内容是带有树型结构或者List,Map,那么更新其中一个内容相对较慢。本文所讲操作,均是按照如果缓存不存在,查询数据库后,再放入Redis。原创 2024-04-07 14:13:48 · 801 阅读 · 1 评论 -
MySQL 里有 2000w 数据,Redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据?
1):放任键过期不管,但是每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话,就删除该键;如果没有过期,就返回该键。2):每隔一段时间程序就对数据库进行一次检查,删除里面的过期键。至于要删除多少过期键,以及要检查多少个数据库,则由算法决定。原创 2024-04-08 08:35:52 · 551 阅读 · 0 评论 -
Canal 扩展篇
GitHub - alibaba/canal: 阿里巴巴 MySQL binlog 增量订阅&消费组件Canal 主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费,工作原理如下:Canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送 dump 协议MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 Canal )Canal 解析 binary log 对象(原始为原创 2024-04-12 08:52:52 · 1013 阅读 · 0 评论 -
Redis集群模式
缺点:相比其他模式更复杂,需要更多的网络资源和配置管理;Redis Cluster是官方正式支持的分布式解决方案,它采用了数据分片(sharding)技术,将数据分散在多个节点上。优点:真正实现了分布式存储,每个节点都可以处理读写请求,具备良好的水平扩展能力;缺点:需要手动进行故障转移,无法自动处理主节点故障;不支持自动的数据分区(sharding),难以做到水平扩展。Redis提供了多种集群模式以适应不同场景下的高可用性和水平扩展需求。优点:实现简单,能实现数据冗余,通过读写分离提高系统性能。原创 2024-04-08 20:17:30 · 209 阅读 · 0 评论 -
docker安装redis
#注意要提前关闭防火墙,不然外部访问不了 systemctl stop firewalld。我们需要挂载数据文件,在宿主机上面,这样就可以持久化数据.以上命令,每次启动新的Redis容器,数据会丢失。配置文件需要修改3个地方。启动客户端 (了解)原创 2024-03-26 08:39:08 · 208 阅读 · 0 评论 -
在百万keys的Redis里面,如何模糊查找某个key.(keys和scan怎么用)
如果非要遍历所有keys不可,更推荐使用迭代命令(如 SCAN)以及结合合适的数据结构来执行查询,它可以用于迭代集合中的元素而不会阻塞整个数据库,特别是在大型数据库中,因为它将迭代的工作分散到多个步骤,并允许客户端逐步处理结果。在 Redis 中,所有命令都是按顺序执行的,一个命令执行完成后,才会执行下一个命令。这是因为 KEYS 命令的实现需要遍历所有的键来匹配模式,这个过程的时间复杂度是 O(N),其中 N 是键的总数,因此使用KEYS*命令查询时,Redis的响应速度和Redis中数据量成正比。原创 2024-03-27 11:19:22 · 801 阅读 · 0 评论 -
Redis数据持久化方案
Redis是一个内存数据库,一旦断电或服务器进程退出,内存数据库中的数据将全部丢失,所以需要Redis持久化Redis持久化就是把数据保存在磁盘上,利用永久性存储介质将数据保存,在特定的时间将保存的数据进行恢复的工作机制Redis提供两种持久化机制:RDB:存储数据结果,关注点在数据(AOF:存储操作过程,关注点在数据的操作过程(在指定的时间间隔内将内存中的数据集中写入磁盘,也就是快照(Snapshot),数据恢复是将快照文件直接读到内存中。原创 2024-03-26 08:39:38 · 437 阅读 · 0 评论 -
Redis主从同步机制
Redis主从同步机制是一种分布式数据库架构设计,用于确保主数据库(Master)和从数据库(Slave)之间的数据一致性,从而实现数据冗余、负载均衡、故障转移等功能。(Full Resynchronization): 当一个新的从节点加入集群或者主从节点之间的连接断开重连时,从节点通常会发起全量同步。主节点执行bgsave生成RDB(Redis Database)文件,即Redis的持久化快照,然后将这个快照文件传输给从节点,从节点载入此快照,从而完成初始的数据同步。原创 2024-04-08 20:17:53 · 970 阅读 · 0 评论 -
Redis数据类型bitMap以及解决的相关实际需求
在Redis数据库中,Bitmap(位图)是一种特殊的数据结构,它不是一个独立的数据类型,而是基于String类型实现的。Bitmap主要用于存储大量二进制位(0或1)的数据,这些位可以代表不同的状态或标志。: Redis的Bitmap实际上是利用String类型的最大容量(512 MB)存储一个连续的二进制序列,其中每个字节的8位可以分别代表8个独立的状态。这意味着你可以用一个Bitmap来跟踪多达数百万甚至数十亿的状态,只要状态总数不超过,即大约2^32。原创 2024-03-26 22:00:47 · 1603 阅读 · 0 评论 -
Redis慢日志
客户端从发送命令到获取返回结果经过了以下几个步骤:1. 客户端发送命令2. 该命令进入 Redis 队列排队等待执行3. Redis 开始执行命令 - Redis 命令执行完成4. 命令执行结果返回给客户端Redis 慢查询日志统计的时间,只包含第三步的 Redis 命令从开始执行到执行完成的时间。原创 2024-03-29 08:41:04 · 389 阅读 · 0 评论 -
Redis是单线程还是多线程?(面试题)
1、Redis5及之前是单线程版本2、Redis6开始引入多线程版本(实际上是 单线程+多线程 版本)原创 2024-03-27 17:35:04 · 819 阅读 · 0 评论 -
Redis常用命令
Redis 命令参考 — Redis 命令参考 (redisfans.com) TYPE TTL 这个命令类似于以下两个命令:SET key valueEXPIRE key seconds # 设置生存时间aa五秒后失效消失KEYSSCAN 在上面这个例子中, 第一次迭代使用 0 作为游标, 表示开始一次新的迭代。第二次迭代使用的是第一次迭原创 2024-03-26 20:40:26 · 1240 阅读 · 0 评论 -
Redis实战(+)
【代码】Redis实战(+)原创 2024-04-08 08:57:27 · 495 阅读 · 0 评论 -
Redis常见问题
简单解析速度快可读性好每一个node两个tcp 连接一个负责client-server通讯(P: 6379)一个负责node之间通讯(P: 10000 + 6379)简单字符(首字节: “+”)“+OK\r\n”错误(首字节: “-”)数字(首字节: “:”)“:123\r\n”批量字符(首字节: “$”)数组(首字节: “*”)“*0\r\n”“*-1\r\n”原创 2024-01-31 19:44:40 · 1040 阅读 · 0 评论 -
Redis介绍(附面试题)
而在后来,随着访问量的提升,使用关系型数据库的Web站点多多少少都开始在性能上出现了一些瓶颈,而瓶颈的源头一般是在磁盘的I/O上。在SDS中,buf数组的长度不一定就是字符串的字符数量加一,buf数组里面可以包含未使用的字节,而这些未使用的字节由free属性记录。Redis提供的数据类型主要分为5种自有类型和一种自定义类型,这5种自有类型包括:String类型、哈希类型、列表类型、集合类型和顺序集合类型。Set类型是一种无顺序集合, 它和List类型最大的区别是:集合中的元素没有顺序, 且元素是唯一的。原创 2024-01-31 19:42:19 · 1556 阅读 · 0 评论