
Redis
文章平均质量分 90
muyierfly
这个作者很懒,什么都没留下…
展开
-
20.Redis之缓存
2.使用redis作为mysql的缓存。4.缓存使用注意事项。原创 2024-06-01 09:48:15 · 1079 阅读 · 1 评论 -
21.Redis之分布式锁
在⼀个分布式的系统中, 也会涉及到多个节点访问同⼀个公共资源的情况. 此时就需要通过 锁 来做互斥控制, 避免出现类似于 "线程安全" 的问题.⽽ java 的 synchronized 或者 C++ 的 std::mutex, 这样的锁都是只能在当前进程中⽣效, 在分布式的这种多个进程多个主机的场景下就⽆能为⼒了.此时就需要使⽤到分布式锁。原创 2024-06-01 09:48:07 · 1135 阅读 · 0 评论 -
19.Redis之集群
哨兵模式提高了系统的可用性哨兵模式中,本质上还是 redis 主/从节点(内存,256G,512G.上 TB 的服务器也不是没有(贵))存储数据,其中就要求一个主节点/从节点,就得存储整个数据的"全集。原创 2024-05-31 18:08:44 · 1133 阅读 · 0 评论 -
18.Redis之哨兵
通过自动化的手段,来解决主节点挂了的问题~~哨兵机制, 是通过独立的 进程 来体现的.和之前 redis-server 是不同的进程!!redis-sentine| 不负责存储数据,只是对其他的 redis-server 进程起到监控的效果~~通常哨兵节点,也会搞一个集合~~(多个哨兵节点构成的)单个哨兵节点,挂了,咋办~~Redis 的主从复制模式下,⼀旦主节点由于故障不能提供服务,需要⼈⼯进⾏主从切换,同时⼤量。原创 2024-05-31 14:21:43 · 1429 阅读 · 0 评论 -
17.Redis之主从复制
分布式系统, 涉及到一个非常关键的问题:单点问题:如果某个服务器程序, 只有一个节点(只搞一个物理服务器, 来部署这个服务器程序)1.可用性问题,如果这个机器挂了,意味着服务就中断了~2.性能/支持的并发量也是比较有限的~引入分布式系统,主要也就是为了解决上述的单点问题子在分布式系统中,往往希望有多个服务器来部署 redis 服务,从而构成一个 redis 集群~~,此时就可以让这个集群给整个分布式系统中其他的服务,提供更稳定/更高效的数据存储功能~~原创 2024-05-30 14:35:34 · 937 阅读 · 0 评论 -
16.Redis之Redis事务
原子性: 把多个操作,打包成一个整体了一致性: 事务执行之前,和之后,数据都不能离谱~持久性: 事务中做出的修改都会存硬盘隔离性: 事务并发执行,涉及到的一些问题~~原创 2024-05-30 09:54:29 · 1252 阅读 · 0 评论 -
15.Redis之持久化
如果子进程里的这个内存数据,和父进程的内存数据完全一样了~~ 此时就不会触发真正的 拷贝 动作.(而是爷俩其实用一份内存数据)但是,其实这俩进程的内存空间,应该是各自独立的~~ 一旦某一方针对这个内存数据做了修改就会立即触发真正的 物理内存 上的数据拷贝~~原创 2024-05-29 14:04:47 · 1211 阅读 · 0 评论 -
14.Redis之JAVASpring客户端
此时就会引入操作 redis 的依赖了~~原创 2024-05-28 18:25:50 · 890 阅读 · 0 评论 -
13.Redis之数据库管理&redis客户端&JAVA客户端
前面学习的主要是各种 redis 的基本操作/命令.都是在 redis 命令行客户端,手动执行的这种操作方式不是我们日常开发中主要的形式~~更多的时候, 是使用 redis 的 api,来实现定制化的 redis 客户端程序,进一步操作 redis 服务器.用程序来操作 redis ~~以前学习 MySQL 的时候~也会涉及到, 关于使用程序来操作 MySQL 服务器C++: MySQL 原生 APIredis 提供的命令行客户端/第三方的图形化客户端 ….原创 2024-05-28 17:35:12 · 1266 阅读 · 0 评论 -
12.Redis之补充类型&渐进式遍历
渐进性遍历 scan 虽然解决了阻塞的问题,但如果在遍历期间键有所变化(增加、修改、删除),可能导致遍历时键的重复遍历或者遗漏,这点务必在实际开发中考虑。Redis 使⽤ scan 命令进⾏渐进式遍历键,进⽽解决直接使⽤ keys 获取键时可能出现的阻塞问。每次 scan 命令的时间复杂度是 O(1),但是要完整地完成所有键的遍历,需要执⾏多次 scan。要想得到所有的 key 就需要多次遍历了~~多次执行渐进式遍历命令(化整为零~)返回值:下⼀次 scan 的游标(cursor)以及本次得到的键。原创 2024-05-28 10:45:34 · 1077 阅读 · 0 评论 -
11.Redis之zset类型
有序描述的是:升序/降序1.唯一2. 无序孙行者,行者孙, 者行孙 =>同一只猴~~List孙行者,行者孙, 者行孙 =>不同的猴~~zset 中的!!(score 则可以重复)原创 2024-05-27 11:17:55 · 1133 阅读 · 0 评论 -
10.Redis之set类型
谈到一个术语,这个术语很可能有多种含义~~原创 2024-05-27 09:26:32 · 861 阅读 · 0 评论 -
9.Redis之list类型
列表中的元素是有序的"有序"的含义,要根据上下文区分~~有的时候,谈到有序,指的是"升序","降序”有的时候,谈到的有序,指的是, 顺序很关键~~如果把元素位置颠倒,顺序调换.此时得到的新的 List 和之前的 List 是不等价的!!同样一个词,怎么理解,务必要结合上下文,结合具体场景~~栈/堆.(数据结构的,操作系统的,M 的)同步(同步和互斥的同步,还是同步和异步的同步)原创 2024-05-26 17:37:50 · 1004 阅读 · 0 评论 -
8.Redis之hash类型
哈希表[之前学过的所有数据结构中,最最重要的]1.日常开发中,出场频率非常高.2.面试中,非常重要的考点,Redis 自身已经是键值对结构了Redis 自身的键值对就是通过 哈希 的方式来组织的把 key 这一层组织完成之后, 到了 value 这一层~~ value 的其中一种类型还可以再是 哈希哈希类型中的映射关系通常称为 field-value,⽤于区分 Redis 整体的键值对(key-value),原创 2024-05-26 14:36:45 · 685 阅读 · 0 评论 -
7.Redis之String编码方式&应用场景&业务
字符串类型的内部编码有 3 种:•int:8 个字节(64位)的⻓整型。•embstr:⼩于等于 39 个字节的字符串。压缩字符串.适用于表示比较短的字符串。•raw:⼤于 39 个字节的字符串。普通字符串.适用于表示更长的字符串.只是单纯的持有字节数组。Redis 会根据当前值的类型和⻓度动态决定使⽤哪种内部编码实现。原创 2024-05-26 13:39:46 · 712 阅读 · 0 评论 -
6.Redis之String命令
redis 所有的 key 都是字符串,value 的类型是存在差异的~~一般来说,redis 遇到乱码问题的概率更小~~Redis 中的字符串,直接就是按照二进制数据的方式存储的.(不会做任何的编码转换【讲 mysql 的时候,知道 mysql 默认的字符集, 是拉丁文,插入中文,就会失败~~】,存的是啥,取出来就还是啥)原创 2024-05-26 11:07:39 · 755 阅读 · 0 评论 -
5.Redis之常用数据结构&单线程模型
redis 能够使用 单线程模型 很好的工作,原因主要在于 redis 的核心业务逻辑, 都是短平快的~~不太消耗 cpu 资源也就不太吃多核了!数据库对于数据的插入删除査询....都有更复杂的功能支持, 这样的功能势必要花费更多的开销比如,针对插入删除,数据库中的各种约束,都会使数据库做额外的工作,redis 每个基本操作,都是短平快的~~ 就是简单操作一下内存数据,不是什么特别消耗 cpu 的操作.就算搞多个线程,也提升不大~~redis 干的活少,提供的功能相比于 mysql 也是少了不少~~原创 2024-05-26 09:43:40 · 439 阅读 · 0 评论 -
4.Redis之Redis的通用命令
通过 redis-cli 客户端和 redis 服务器交互涉及到很多的 redis 的命令【redis 的命令非常非常多!!!1.掌握常用命令(多操作多练习)2.学会使用 redis 的文档->阅读文档, 是程序猿的基操!!redis 的命令非常非常多!!!1.掌握常用命令(多操作多练习)2.学会使用 redis 的文档任何一个工具软件,去查找相关资料,一定是官方网站!!!】【原创 2024-05-26 09:43:21 · 918 阅读 · 0 评论 -
3.Redis之Redis的环境搭建&redis客户端介绍
安装 Redis:Redis 5 系列~~在 Linux 中进行安装~~Redis 官方是不支持 Windows 版本的~~ 微软维护了一个 Windows 版本的 Redis 分支Centos和Ubuntu.Docker。原创 2024-05-25 20:35:10 · 1032 阅读 · 0 评论 -
2.Redis之Redis的背景知识
MySQL 主要是通过"表"的方式来存储组织数据的,"关系型数据库"Redis 主要是通过“键值对" 的方式来存储组织数据的."非关系型数据库"key 都是 stringvalue 则可以是上述的这些数据结构~原创 2024-05-25 15:28:36 · 526 阅读 · 0 评论 -
1.Redis之初识Redis&分布式系统
上述这样的几个演化的步骤,只是一个粗略的过程.实际上一个商业项目,真实的演化过程,都是和他的业务发展密切相关的,业务是更重要的,技术只是给业务提供支持的。7.引入微服务,从业务上进一步拆分应用服务器~~~从业务功能的角度,把应用服务器,拆分成更多的功能更单一,更简单, 更小的服务器.为了更方便于代码的维护,就可以把这样的一个复杂的服务器,拆分成更多的,功能更单一,但是更小的服务器~~当应用服务器复杂了~~势必就需要更多的人来维护了~~当人多了,就需要配套的管理,把这些人组织好~~原创 2024-05-25 14:48:31 · 904 阅读 · 0 评论