Redis远程字典服务器
文章平均质量分 94
从Redis安装,到使用,再到进阶运用
与你日常
擅长C/C++和数据结构,Linux系统编程,Linux网络编程,MySQL数据库
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Redis远程字典服务器(0)——分布式系统
单机架构:应用程序 + 数据库服务器数据库和应用分离,应用程序和数据库服务器分别放到不同主机上部署了引入负载均衡,应用服务器 --> 集群,通过负载均衡器,把请求比较均匀的分发给集群中的每个应用服务器(当集群中的某个服务器挂了,其它有相同功能的数据仍然可以承担服务,提高了整个系统的可用性)引入读写分离,数据库主从结构,一个数据库作为主节点,其它N个数据库作为从节点,主节点负责写数据,从节点负责读数据,并且主节点需要把修改过的数据同步给从节点。原创 2024-08-07 17:26:51 · 985 阅读 · 0 评论 -
Redis远程字典服务器(1)—— 初识Redis
MySQL主要是通过“表”的方式来存储和组织数据的,称为“关系型数据库而Redis主要是通过“键值对”的方式来存储组织数据的 --> key是string,value可以是其它的数据结构 --> 称为“非关系型数据库Redis也是一个客户端-服务器 结构的程序,MySQL也是这样,redis客户端和服务器可以在同一个主机上,也可以在不同主机上。并且服务器可以给多个客户端提供服务,Redis服务器是本体,负责存储和管理数据。原创 2024-08-07 19:04:11 · 1078 阅读 · 0 评论 -
Redis远程字典服务器(2) —— 全局命令
redis经常用于做缓存,挡在MySQL前面替MySQL负重前行,万一redis被一个keys *阻塞住了,此时其它的查询redis操作就超时了,此时这些请求就会直接查MySQL,然后突然一大堆请求过来了,MySQL可能就会措手不及直接挂了,这样的话系统就基本瘫痪了,如果你要是没能及时发现并及时恢复的话,年终奖就没了,更严重工作也就那啥了。在IP协议的报头字段中,有一个字段就是TTL,表示该报文能够跳转的路由器的最大个数,IP中的TTL表示次数,不是时间,和这个ttl不一样。原创 2024-08-08 18:09:07 · 1180 阅读 · 0 评论 -
Redis远程字典服务器(3)——常用数据结构和单线程模型
Redis是采用键值对的方式来存储数据的,key强制为字符串类型,value可以为其它的类型,常用的有5种:string(字符串)、list(列表)、hash(哈希)、set(集合)、zset(有序集合),当前版本的redis支持10个,但除了上面5种的其它5种只在某些特殊场景下才会用到,到时候只需要查阅文档即可~注意:Redis在实现上述数据结构的时候,会在源码层面,针对上述实现进行特定的优化,来达到节省 时间/空间 的效果;而这个“特定的优化。原创 2024-08-09 21:27:53 · 1081 阅读 · 0 评论 -
Redis远程字典服务器(4)—— string类型详解
命令执行效果时间复杂度incr key指定的 key 的值 +1O(1)decr key指定的 key 的值 -1O(1)指定的 key 的值 +nO(1)指定的 key 的值 -nO(1)指定的 key 的值 +nO(1)指定的 key 的值追加 valueO(1)strlen key获取指定 key 的值的⻓度O(1)覆盖指定 key 的从 offset 开始的部分值O(n),n 是字符 串⻓度, 通常视 为 O(1。原创 2024-08-12 19:01:18 · 996 阅读 · 0 评论 -
Redis远程字典服务器(5) —— hash类型详解
ziplist同理,内部的数据结构也是精心设计的,表示一个普通的哈希表,可能会浪费一定的空间(哈希是一个数组,数组上有些位置有元素,有些没有),使用ziplist就可以节省空间,内部的具体实现我们以后再看源码解析。,⽤于区分 Redis 整体的键值对(key-value), 注意这⾥的 value 是指 field 对应的值,不是键(key)对应的值,请注意 value 在不同上下文的作用。:读写元素较慢,如果元素较少,慢的并不明显,所以当哈希的元素个数较少,就会用ziplist去优化。原创 2024-08-14 17:18:06 · 1149 阅读 · 0 评论 -
Redis远程字典服务器(6) —— list类型详解
(插入1,2,3,4,完成操作后4在最前面),可以一次插入多个,能减少网络开销;原创 2024-08-15 20:22:35 · 1144 阅读 · 0 评论 -
Redis远程字典服务器(7)—— set类型详解
上面的玩法,某音是玩得最好得,其他互联网大厂一看,也都纷纷效仿和跟进 --> 信息茧房 --> 你看到的东西都是你愿意看到的,你不愿意看的就很难被你看到 --> 你看到的内容始终是一个小圈子 --> 到处传递焦虑的,当你很认真看了一个焦虑视频之后,人家服务器就判定,你非常爱看这种类型的视频,然后就给你狂推送。“用户画像”,这种事情其实是挺复杂的事情,一般的大厂都会有专门的团队做这样的工作,用来准确描述一个人的喜好等。这里说的标签,就是一些简短的字符串,此时就可以把标签保存到Redis的set中了。原创 2024-08-16 20:01:56 · 1078 阅读 · 0 评论 -
Redis远程字典服务器(8)—— zset类型详解
计算得到综合得分 ==> 热度。此处zpopming和zpopmax的逻辑是一致的,bzpopmin也是一样的,删除的时候是使用的通用的删除函数,所以有了查找的过程,时间复杂度是O(logN + M) ,M是要删除的个数,所以可以不记,最后的时间复杂度可以为O(logN):可以做到,但是Redis没有这么做,而且实际上,在Redis源码中,针对有序集合,确实是记录了“尾部”这样的特定位置,但是实际删除的时候,是直接调用了一个“通用的删除函数”,给定一个member的值,进行查找,找到位置在删除。原创 2024-08-19 23:38:53 · 3865 阅读 · 0 评论 -
Redis常用数据结构常用命令总览
命令查询传送门Redis远程字典服务器(4)—— string类型详解Redis远程字典服务器(5) —— hash类型详解Redis远程字典服务器(6) —— list类型详解-优快云博客 Redis远程字典服务器(7)—— set类型详解Redis远程字典服务器(8)—— zset类型详解-优快云博客zrank key memberzrevrank key membezrange key start end [withscores]zrevrange key start end [withscore原创 2024-08-20 15:59:41 · 1075 阅读 · 0 评论 -
Redis远程字典服务器(9)—— 类型补充
之所以set要消耗这么大的空间,是因为它要存储每个userid元素,而hyperloglog不存储元素的内容,但是能记住“元素的特征”,从而在新增元素的时候,能够知道当前新增的元素,是一个已经存在的元素,还是第一次出现的元素。官方文档对于这个类型的解释是:streams是一个数据结构,它表现得像一个 “append-only log”,就是只能往后面添加,底层是字符串,就像是一个日志;对于“元素的特征”,要想理解这个还是得分析源码,其核心思路是“位操作”,所以存在一定精确性,原创 2024-08-21 21:19:37 · 1045 阅读 · 0 评论 -
Redis远程字典服务器(10)—— 渐进式命令与数据库管理命令
cursor:只是一个字符串,长得像数字而已,不能代表下标Redis远程字典服务器(2) —— 全局命令-优快云博客COUNT count:限制这一次遍历能够获取到多少个元素,默认是10(此处的count和MySQL的limit不一样,limit是精确的,此处的count只是给Redis服务器的一个“提示”/“建议”,写入的count和实际返回的key不一定是相同的,但不会差很多)TYPE type:key都是string类型,value有很多类型,这个就是获取指定类型的value。原创 2024-08-22 15:35:04 · 1021 阅读 · 0 评论 -
Redis远程字典服务器(11)—— redis客户端介绍
Redis的命令行客户端,或者第三方图形化客户端,本质上都属于是“通用的客户端程序”,相比之下,我们在工作中更希望使用到的是“专用的”,“定制化”的客户端程序Redis能支持很多很多的编程语言,但是往上大部分都是以Java为主,但是由于本人是主攻C++方向的,所以后面的客户端代码编写,我们以C++语言为主哈~我们前面也说过,Redis客户端和服务器是以。原创 2024-08-22 17:27:15 · 504 阅读 · 0 评论 -
Redis远程字典服务器(12)—— 使用C++操作Redis
Linux操作系统基础开发工具的使用——vim,gcc/g++,MakeFile,gdb,yum/apt_vim makefile-优快云博客。原创 2024-08-26 10:38:13 · 1624 阅读 · 0 评论
分享