![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
文章平均质量分 71
杰深入学习计算机
已经入门,继续努力
展开
-
【Redis】Redis客户端——Jedis(Java)
要想让本地主机能访问 Redis, 需要把Redis的端口通过云服务器后台页面的 “防火墙” / “安全组” 放开端口到公网上. 但是这个操作非常危险(黑客会顺着Redis端口进来).因此我们可以使用端口转发的方式, 直接把服务器的Redis端口映射到本地。注意, xshell 和服务器必须处在连接状态, 这样的映射才是有效的.Redis 服务器按照在云服务器上, 而我们编写的代码则是在本地主机.此时, 访问本地的 8888, 就相当于访问对应服务器的 6379。3) 使⽤该会话连接服务器.原创 2024-08-24 20:23:51 · 286 阅读 · 0 评论 -
【Redis】渐进式遍历和数据库管理
许多关系型数据库,例如 MySQL ⽀持在⼀个实例下有多个数据库存在的,但是与关系型数据库⽤字符来区分不同数据库名不同,Redis 只是⽤数字作为多个数据库的实现。每次 scan 命令的时间复杂度是 O(1),但是要完整地完成所有键的遍历,需要执⾏多次 scan。Redis 提供了⼏个⾯向 Redis 数据库的操作,分别是 dbsize、select、flushdb、flushall 命令,本机将通过具体的使⽤常⻅介绍这些命令。返回值:下⼀次 scan 的游标(cursor)以及本次得到的键。原创 2024-08-24 15:43:17 · 358 阅读 · 0 评论 -
【Redis】Redis数据结构——zset 有序集合
有序集合相对于字符串、列表、哈希、集合来说会有⼀些陌⽣。它保留了集合不能有重复成员的特点,但与集合不同的是,有序集合中的每个元素都有⼀个唯⼀的浮点类型的分数(score)与之关联,着使得有序集合中的元素是可以维护有序性的,但这个有序不是⽤下标作为排序依据⽽是⽤这个分数。有序集合提供了获取指定分数和元素范围查找、计算成员排名等功能,合理地利⽤有序集合,可以帮助我们在实际开发中解决很多问题。有序集合中的元素是不能重复的,但分数允许重复。类⽐于⼀次考试之后,每个⼈⼀定有⼀个唯⼀的分数,但分数允许相同。原创 2024-08-24 01:15:43 · 474 阅读 · 0 评论 -
【Redis】Redis数据结构——Set 集合
集合类型也是保存多个字符串类型的元素的,但和列表类型不同的是,集合中 1)元素之间是⽆序的 2)元素不允许重复,如图 2-24 所⽰。⼀个集合中最多可以存储 个元素。Redis 除了⽀持集合内的增删查改操作,同时还⽀持多个集合取交集、并集、差集,合理地使⽤好集合类型,能在实际开发中解决很多问题。原创 2024-08-23 18:55:01 · 479 阅读 · 0 评论 -
【Redis】Redis数据结构——List列表
列表类型是⽤来存储多个有序的字符串,如图 2-19 所⽰,a、b、c、d、e 五个元素从左到右组成了⼀个有序的列表,列表中的每个字符串称为元素(element),⼀个列表最多可以存储 个元素。在 Redis 中,可以对列表两端插⼊(push)和弹出(pop),还可以获取指定范围的元素列表、获取指定索引下标的元素等(如图 2-19 和图 2-20 所⽰)。列表是⼀种⽐较灵活的数据结构,它可以充当栈和队列的⻆⾊,在实际开发上有很多应⽤场景。原创 2024-08-23 13:20:56 · 646 阅读 · 0 评论 -
【Redis】Redis数据结构——Hash 哈希
⼏乎所有的主流编程语⾔都提供了哈希(hash)类型,它们的叫法可能是哈希、字典、关联数组、映射。在 Redis 中,哈希类型是指值本⾝⼜是⼀个键值对结构,形如 key = “key”,value = { {field1, value1 }, …, {fieldN, valueN } },Redis 键值对和哈希类型⼆者的关系可以⽤图 2-15 来表⽰。原创 2024-08-23 12:37:01 · 642 阅读 · 0 评论 -
【Redis】Redis数据结构——String 字符串
如图 2-12 所⽰,⼀个分布式 Web 服务将⽤⼾的 Session 信息(例如⽤⼾登录信息)保存在各⾃的服务器中,但这样会造成⼀个问题:出于负载均衡的考虑,分布式服务会将⽤⼾的访问请求均衡到不同的服务器上,并且通常⽆法保证⽤⼾每次请求都会被均衡到同⼀台服务器上,这样当⽤⼾刷新⼀次访问是可能会发现需要重新登录,这个问题是⽤⼾⽆法容忍的。学会使⽤批量操作,可以有效提⾼业务处理效率,但是要注意,每次批量操作所发送的键的数量也不是⽆节制的,否则可能造成单⼀命令执⾏时间过⻓,导致 Redis 阻塞。原创 2024-08-22 21:37:09 · 932 阅读 · 0 评论 -
【Redis】单线程架构
Redis 使⽤了单线程架构来实现⾼性能的内存数据库服务。原创 2024-08-22 18:49:09 · 425 阅读 · 0 评论 -
【Redis】数据结构和内部编码
可以改进内部编码, 而对外的数据结构和命令没有任何影响, 这样一旦开发出更优秀的内部编码, 无需改动外部数据结构和命令, 例如Redis 3.2 提供了 quicklist, 结合了 ziplist 和linkedlist 两者的优势, 为列表类型提供了一种更为优秀的内部编码实现, 而对用户来说基本无感知.实际上Redis内部针对每个数据结构都有自己的内部编码, 而且是多种实现, 这样Redis会在合适的场景选择合适的内部编码。原创 2024-08-22 18:32:36 · 231 阅读 · 0 评论 -
【Redis】基本全局命令
Redis 有 5 种数据结构,但它们都是键值对种的值,对于键来说有⼀些通⽤的命令。原创 2024-08-22 17:29:38 · 406 阅读 · 0 评论 -
【Redis & 知识储备】容器编排架构 -- 分布系统的演进(8)
借助容器技术(如docker) 将应用/服务可以打包为镜像, 通过容器编排工具(如k8s) 来动态分发和部署镜像。原创 2024-04-07 23:59:52 · 365 阅读 · 0 评论 -
【Redis & 知识储备】微服务架构 -- 分布系统的演进(7)
微服务是一种架构风格, 按照业务板块来划分应用代码, 使单个应用的职责更清晰, 相互之间可以做到独立升级迭代。原创 2024-04-07 23:50:37 · 376 阅读 · 0 评论 -
【Redis & 知识储备】垂直分库架构 -- 分布系统的演进(6)
数据库的数据被拆分, 数据库分布式存储, 分布式处理, 分布式查询, 也可以理解为分布式数据库框架。原创 2024-04-07 23:35:03 · 389 阅读 · 0 评论 -
【Redis & 知识储备】冷热分离架构 -- 分布系统的演进(5)
引入缓存, 实行冷热分离, 将热点数据放到缓存中快速响应 (如存储到Redis中)原创 2024-04-07 23:26:25 · 461 阅读 · 0 评论 -
【Redis & 知识储备】读写分离/主从分离架构 -- 分布系统的演进(4)
将数据库读写操作分散到不同的节点上, 数据库服务器搭建主从集群, 一主一从, 一主多从都可以, 数据库主机负责写操作, 从机只负责读操作。原创 2024-04-07 22:05:38 · 437 阅读 · 0 评论 -
【Redis & 知识储备】应⽤服务集群架构 -- 分布系统的演进(3)
这需要引⼊⼀个新的组件⸺负载均衡:为了解决⽤⼾流量向哪台应⽤服务器分发的问题,需要⼀个专⻔的系统组件做流量分发。服务再次升级, 客户访问的流量增大, 单台应用服务器不能满足需求。选择了⽔平扩展的⽅案,来解决该问题。原创 2024-04-02 13:43:37 · 254 阅读 · 0 评论 -
【Redis & 知识储备】应⽤数据分离架构 -- 分布系统的演进(2)
随着系统的上线,我们不出意外地获得了成功。市场上出现了⼀批忠实于我们的⽤⼾,使得系统的访问量逐步上升,逐渐逼近了硬件资源的极限,同时团队也在此期间积累了对业务流程的⼀批经验。⾯对当前的性能压⼒,我们需要未⾬绸缪去进⾏系统重构、架构挑战,以提升系统的承载能⼒。但由于预算仍然很紧张,我们选择了将应⽤和数据分离的做法,可以最⼩代价的提升系统的承载能⼒。和之前架构的主要区别在于将数据库服务独⽴部署在同⼀个数据中⼼的其他服务器上,原创 2024-04-02 13:33:53 · 407 阅读 · 0 评论 -
【Redis & 知识储备】单机架构 -- 分布系统的演进(1)
投⼊市场进⾏检验,并且可以迅速响应变化要求。但好在前期⽤⼾访问量很少,没有对我们的性能、安全等提出很⾼的要求,⽽且。各凭本事, 通过性能测试, 分析出哪个环节出现了问题, 在依据该问题找到解决方案, 该过程是需要工作经验积累的。初期,我们需要利⽤我们精⼲的技术团队,,⽆需专业的运维团队,所以选择。节流 – 软件上的优化。开源 – 增加硬件资源。原创 2024-04-02 13:11:45 · 452 阅读 · 0 评论 -
【Redis】初识 Redis
Redis 提供了简单的 TCP 通信协议,很多编程语⾔可以很⽅便地接⼊到 Redis,并且由于 Redis 受到社区和各⼤公司的⼴泛认可,所以⽀持 Redis 的客⼾端语⾔也⾮常多,⼏乎涵盖了主流的编程语⾔,例如 C、C++、Java、PHP、Python、NodeJS 等,后续我们会对 Redis 的客⼾端使⽤做详细说明。计数器在⽹站中的作⽤⾄关重要,例如视频⽹站有播放数、电商⽹站有浏览数,为了保证数据的实时性,每⼀次播放和浏览都要做加 1 的操作,如果并发量很⼤对于传统关系型数据的性能是⼀种挑战。原创 2024-04-02 12:42:24 · 758 阅读 · 0 评论