- Redis通过自己的方法管理内存,,主要方法有zmalloc(),zrealloc(), zcalloc()和zfree(), 分别对应C中的malloc(), realloc()、 calloc()和free()。相关代码在zmalloc.h和zmalloc.c中。 Redis自己管理内存的好处主要有两个:可以利用内存池等手段提高内存分配的性能;可以掌握更多的内存信息,以便... Redis通过自己的方法管理内存,,主要方法有zmalloc(),zrealloc(), zcalloc()和zfree(), 分别对应C中的malloc(), realloc()、 calloc()和free()。相关代码在zmalloc.h和zmalloc.c中。 Redis自己管理内存的好处主要有两个:可以利用内存池等手段提高内存分配的性能;可以掌握更多的内存信息,以便...
- redis服务器是一个事件驱动程序。 需要处理两类事件: 1)文件事件:redis是通过套接字与客户端或者其他服务器连接的,而文件事件就是服务器对套接字操作的抽象。 2)时间事件:服务器对一些定时操作的抽象。 文件事件 redis基于reactor模式开发了自己的网络事件处理器,这个处理器被称作文件事件处理器,它使用IO多路复用程序来同时监听多个套接字, 并根据套接... redis服务器是一个事件驱动程序。 需要处理两类事件: 1)文件事件:redis是通过套接字与客户端或者其他服务器连接的,而文件事件就是服务器对套接字操作的抽象。 2)时间事件:服务器对一些定时操作的抽象。 文件事件 redis基于reactor模式开发了自己的网络事件处理器,这个处理器被称作文件事件处理器,它使用IO多路复用程序来同时监听多个套接字, 并根据套接...
- /* The following is the NetBSD libc qsort implementation modified in order to * support partial sorting of ranges for Redis. * * Copyright(C) 2009-2012 Salvatore Sanfilippo. All rights rese... /* The following is the NetBSD libc qsort implementation modified in order to * support partial sorting of ranges for Redis. * * Copyright(C) 2009-2012 Salvatore Sanfilippo. All rights rese...
- NoSql入门概述 单机Mysql的美好时代 瓶颈: 数据库总大小一台机器硬盘内存放不下数据的索引(B + tree)一个机器的运行内存放不下访问量(读写混合)一个实例不能承受 Memcached(缓存)+ MySql + 垂直拆分 通过缓存来缓解数据库的压力,优化数据库的结构和索引 垂直拆分指的是:分成多个数据库存储数据(如:卖家库与买家库)... NoSql入门概述 单机Mysql的美好时代 瓶颈: 数据库总大小一台机器硬盘内存放不下数据的索引(B + tree)一个机器的运行内存放不下访问量(读写混合)一个实例不能承受 Memcached(缓存)+ MySql + 垂直拆分 通过缓存来缓解数据库的压力,优化数据库的结构和索引 垂直拆分指的是:分成多个数据库存储数据(如:卖家库与买家库)...
- HyperLogLog 是一种概率数据结构,用来估算数据的基数。数据集可以是网站访客的 IP 地址,E-mail 邮箱或者用户 ID。 基数就是指一个集合中不同值的数目,比如 a, b, c, d 的基数就是 4,a, b, c, d, a 的基数还是 4。虽然 a 出现两次,只会被计算一次。 使用 Redis 统计集合的基数一般有三种方法,分别是使用 Redis 的 H... HyperLogLog 是一种概率数据结构,用来估算数据的基数。数据集可以是网站访客的 IP 地址,E-mail 邮箱或者用户 ID。 基数就是指一个集合中不同值的数目,比如 a, b, c, d 的基数就是 4,a, b, c, d, a 的基数还是 4。虽然 a 出现两次,只会被计算一次。 使用 Redis 统计集合的基数一般有三种方法,分别是使用 Redis 的 H...
- 因为redis是内存数据库,他把数据都存在内存里,所以要想办法实现持久化功能。 RDB RDB持久化可以手动执行,也可以配置定期执行,可以把某个时间的数据状态保存到RDB文件中,反之,我们可以用RDB文件还原数据库状态。 生成 有两个命令可以生成RDB文件: SAVE 命令由服务器进程直接执行保存操作,所以该命令会阻塞服务器,服... 因为redis是内存数据库,他把数据都存在内存里,所以要想办法实现持久化功能。 RDB RDB持久化可以手动执行,也可以配置定期执行,可以把某个时间的数据状态保存到RDB文件中,反之,我们可以用RDB文件还原数据库状态。 生成 有两个命令可以生成RDB文件: SAVE 命令由服务器进程直接执行保存操作,所以该命令会阻塞服务器,服...
- Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证: 批量操作在发送 EXEC 命令前被放入队列缓存。收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。 一个事务从开始到执行会经历以下三个阶段: 开始事务。命令入队。执行事务。 以下是一个事务的例子, 它先... Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证: 批量操作在发送 EXEC 命令前被放入队列缓存。收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。 一个事务从开始到执行会经历以下三个阶段: 开始事务。命令入队。执行事务。 以下是一个事务的例子, 它先...
- 4、整数集合 整数集合(intset)是 Redis 用于保存整数值的集合抽象数据结构, 可以保存 int16_t 、 int32_t 、 int64_t 的整数值, 并且保证集合中不会出现重复元素。 实现较为简单: typedef struct intset { // 编码方式 uint32_t encoding; // 集合包含的元素数量 uint32_t leng... 4、整数集合 整数集合(intset)是 Redis 用于保存整数值的集合抽象数据结构, 可以保存 int16_t 、 int32_t 、 int64_t 的整数值, 并且保证集合中不会出现重复元素。 实现较为简单: typedef struct intset { // 编码方式 uint32_t encoding; // 集合包含的元素数量 uint32_t leng...
- scrapy_redis概念作用和流程 学习目标 了解 分布式的概念及特点了解 scarpy_redis的概念了解 scrapy_redis的作用了解 scrapy_redis的工作流程 在前面scrapy框架中我们已经能够使用框架实现爬虫爬取网站数据,如果当前网站的数据比较庞大, 我们就需要使用分布式来更快的爬取数据 1. 分布式是什么 ... scrapy_redis概念作用和流程 学习目标 了解 分布式的概念及特点了解 scarpy_redis的概念了解 scrapy_redis的作用了解 scrapy_redis的工作流程 在前面scrapy框架中我们已经能够使用框架实现爬虫爬取网站数据,如果当前网站的数据比较庞大, 我们就需要使用分布式来更快的爬取数据 1. 分布式是什么 ...
- sync虽然解决了数据同步问题,但是在数据量比较大情况下,从库断线从来依然采用全量复制机制,无论是从数据恢复、宽带占用来说,sync所带来的问题还是很多的。于是redis从2.8开始,引入新的命令psync。 psync有两种模式:完整重同步和部分重同步。 部分重同步主要依赖三个方面来实现,依次介绍。 offset(复制偏移量): 主库和从库分别各自维护一个复制偏移量... sync虽然解决了数据同步问题,但是在数据量比较大情况下,从库断线从来依然采用全量复制机制,无论是从数据恢复、宽带占用来说,sync所带来的问题还是很多的。于是redis从2.8开始,引入新的命令psync。 psync有两种模式:完整重同步和部分重同步。 部分重同步主要依赖三个方面来实现,依次介绍。 offset(复制偏移量): 主库和从库分别各自维护一个复制偏移量...
- 频道的订阅和退订 当一个客户端执行 SUBSCRIBE 命令, 订阅某个或某些频道的时候, 这个客户端与被订阅频道之间就建立起了一种订阅关系。 Redis 将所有频道的订阅关系都保存在服务器状态的 pubsub_channels 字典里面, 这个字典的键是某个被订阅的频道, 而键的值则是一个链表, 链表里面记录了所有订阅这个频道的客... 频道的订阅和退订 当一个客户端执行 SUBSCRIBE 命令, 订阅某个或某些频道的时候, 这个客户端与被订阅频道之间就建立起了一种订阅关系。 Redis 将所有频道的订阅关系都保存在服务器状态的 pubsub_channels 字典里面, 这个字典的键是某个被订阅的频道, 而键的值则是一个链表, 链表里面记录了所有订阅这个频道的客...
- redis服务器将所有数据库都保存在redis/redisServer中,数组db存放所有数据库,每一项是一个redisdb结构。dbnum代表数据库数量。 客户端有一个指针指向当前数据库,可以切换,也就是移动指针。 键空间 现在稍微介绍一下redisdb结构,它的字典保存了所有键值对 键空间的键也就是数据库的键, 每个键都是一个字符串对象。 键空间的值也就是数据库... redis服务器将所有数据库都保存在redis/redisServer中,数组db存放所有数据库,每一项是一个redisdb结构。dbnum代表数据库数量。 客户端有一个指针指向当前数据库,可以切换,也就是移动指针。 键空间 现在稍微介绍一下redisdb结构,它的字典保存了所有键值对 键空间的键也就是数据库的键, 每个键都是一个字符串对象。 键空间的值也就是数据库...
- 点赞功能随处可见,我们都知道点赞是一个非常高频的操作,redis就非常适合做这种工作。 实现效果: 分析:三种类型:给帖子点赞,给评论点赞,给回复点赞 我们只实现查看点赞数量的话,只要一个int记录一下就可以,但是我们之后还想查看点赞的人,所以要把每一个点赞的信息都记录好,方便后面的功能继续做出来。 思路: 点赞:把点赞的信息放进去。 取消:把点赞的信息删除。... 点赞功能随处可见,我们都知道点赞是一个非常高频的操作,redis就非常适合做这种工作。 实现效果: 分析:三种类型:给帖子点赞,给评论点赞,给回复点赞 我们只实现查看点赞数量的话,只要一个int记录一下就可以,但是我们之后还想查看点赞的人,所以要把每一个点赞的信息都记录好,方便后面的功能继续做出来。 思路: 点赞:把点赞的信息放进去。 取消:把点赞的信息删除。...
- Redis 的复制功能分为同步(sync)和命令传播(command propagate)两个操作: 同步操作用于将从服务器的数据库状态更新至主服务器当前所处的数据库状态。命令传播操作用于在主服务器的数据库状态被修改, 导致主从服务器的数据库状态出现不一致时, 让主从服务器的数据库重新回到一致状态。 同步 当客户端向从服务器发送 SLAVEOF 命令,... Redis 的复制功能分为同步(sync)和命令传播(command propagate)两个操作: 同步操作用于将从服务器的数据库状态更新至主服务器当前所处的数据库状态。命令传播操作用于在主服务器的数据库状态被修改, 导致主从服务器的数据库状态出现不一致时, 让主从服务器的数据库重新回到一致状态。 同步 当客户端向从服务器发送 SLAVEOF 命令,...
- 1 字符串 redis并未使用传统的c语言字符串表示,它自己构建了一种简单的动态字符串抽象类型。 在redis里,c语言字符串只会作为字符串字面量出现,用在无需修改的地方。 当需要一个可以被修改的字符串时,redis就会使用自己实现的SDS(simple dynamic string)。比如在redis数据库里,包含字符串的键值对底层都是SDS实现的,不止如此,SDS还... 1 字符串 redis并未使用传统的c语言字符串表示,它自己构建了一种简单的动态字符串抽象类型。 在redis里,c语言字符串只会作为字符串字面量出现,用在无需修改的地方。 当需要一个可以被修改的字符串时,redis就会使用自己实现的SDS(simple dynamic string)。比如在redis数据库里,包含字符串的键值对底层都是SDS实现的,不止如此,SDS还...
上滑加载中
推荐直播
-
AI编码实干派,“码”力全开2026/02/26 周四 15:00-16:30
谈宗玮/于邦旭/丁俊卿/陈云亮/王一男
【中国,深圳,2026年2月26日】,以“AI编码实干派,码力全开”为主题的华为云码道(CodeArts)代码智能体新春发布会在线上成功召开。华为云码道公测版正式发布,为开发者和企业提供具备工程化能力的智能编码解决方案。
回顾中 -
华为云码道-玩转OpenClaw,在线养虾2026/03/11 周三 19:00-21:00
刘昱,华为云高级工程师/谈心,华为云技术专家/李海仑,上海圭卓智能科技有限公司CEO
OpenClaw 火爆开发者圈,华为云码道最新推出 Skill ——开发者只需输入一句口令,即可部署一个功能完整的「小龙虾」智能体。直播带你玩转华为云码道,玩转OpenClaw
回顾中 -
华为云码道-AI时代应用开发利器2026/03/18 周三 19:00-20:00
童得力,华为云开发者生态运营总监/姚圣伟,华为云HCDE开发者专家
本次直播由华为专家带你实战应用开发,看华为云码道(CodeArts)代码智能体如何在AI时代让你的创意应用快速落地。更有华为云HCDE开发者专家带你用码道玩转JiuwenClaw,让小艺成为你的AI助理。
回顾中
热门标签