Redis
Redis
琴 韵
Anything is possibole! 知识创造价值
展开
-
Redis【有与无】【C3】配置 redis.conf
本文章基于Redis 7.0.4版本,对Redis配置进行说明。原创 2022-08-29 16:16:10 · 405 阅读 · 0 评论 -
Redis【有与无】【C1】配置 redis.conf
本文章基于Redis 6.0.9版本,对Redis配置进行说明1.说明Redis 配置文件示例注意,为了读取配置文件,Redis 必须以文件路径作为第一个参数开始:./redis-server /path/to/redis.conf注意: 当需要内存大小时,可以指定通常的形式是1k 5GB 4M 等等:1k => 1000 bytes1kb => 1024 bytes1m => 1000000 bytes1mb => 1024*1024 byte原创 2020-11-23 10:04:51 · 494 阅读 · 0 评论 -
Redis【有与无】【C2】配置 sentinel.conf
本文章基于Redis 6.0.9版本,对Redis集群配置进行说明目录1.重要说明1.1.脚本执行(SCRIPTS EXECUTION)1.2.通知脚本(NOTIFICATION SCRIPT)1.3.客户重新配置脚本(CLIENTS RECONFIGURATION SCRIPT)1.4.安全(SECURITY)1.5.REDIS命令重命名(REDIS COMMANDS RENAMING)1.重要说明默认情况下,Sentinel将无法通过不同于localhost的接口访问原创 2020-11-23 10:46:22 · 541 阅读 · 0 评论 -
Redis【有与无】【R1】Redis 集群
参考:https://redis.io/topics/cluster-tutorial目录1.前提说明2.简介2.1.Redis Cluster 1012.2.Redis 集群 TCP 端口2.3.Redis Cluster 和 Docker2.4.Redis 集群数据分片2.5.Redis 集群主从模型(master-slave)2.6.Redis 集群一致性保证3.Redis 集群配置参数4.创建和使用 Redis 集群4.1.创建集群4.2.使用 c原创 2020-11-24 14:29:31 · 236 阅读 · 0 评论 -
Redis【有与无】【R2】Redis Cluster规范
Redis Cluster规范:Redis Cluster中使用的行为和算法的更正式描述。1.前提说明本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。欢迎使用 Redis 集群规范。在这里,您将找到关于 Redis Cluster 的算法和设计原理的信息。2.设计的主要特点和原理2.1.集群目标Redis Cluster 是 Redis 的一个分布式实现,按照设计的重要性顺序,它有以下目标:高性能和1000个节点的线性可扩展性。没有代理,使用异步复制,原创 2020-11-26 11:21:52 · 553 阅读 · 0 评论 -
Redis【有与无】【UR1】使用流水线加速Redis查询
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。1.Request/Response协议和RTTRedis是使用client-server模型和所谓的Request/Response协议的TCP服务器。这意味着通常可以通过以下步骤完成请求:客户端向服务器发送查询,并通常以阻塞的方式从套接字中读取服务器的响应。 服务器处理命令并将响应发送回客户端。因此,例如,四个命令序列如下所示:Client:INCR X Server:1 Client:I...原创 2020-11-26 14:52:22 · 189 阅读 · 0 评论 -
Redis【有与无】【UR2】发布/订阅
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。目录1.相关命令2.Pub/Sub2.1.推送消息的格式2.2.数据库和作用域2.3.有线协议(Wire protocol)示例2.4.模式匹配(Pattern-matching)订阅2.5.与模式和频道订阅均匹配的消息2.6.模式匹配的订阅计数的含义2.7.编程实例2.8.客户端库实现hints1.相关命令PSUBSCRIBE PUBLISH PUBSUB PUNSUBSC原创 2020-11-26 18:24:19 · 145 阅读 · 0 评论 -
Redis【有与无】【UR3】小聚合数据类型的特殊编码
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。此页面正在进行中。 当前,这只是您应该检查内存问题的清单。1.小聚合数据类型的特殊编码从Redis 2.2开始,对许多数据类型进行了优化,以使用较少的空间来达到特定大小。 当Hashes,Lists,仅由整数组成的Sets和Sorted Sets,当小于元素的给定数量且最大元素大小时,它们以非常节省内存的方式进行编码,使用的内存减少多达10倍(其中平均节省5倍省的时间)。从用户和API的角度来看,这是完全透明的。 由原创 2020-11-26 19:10:09 · 230 阅读 · 0 评论 -
Redis【有与无】【UR4】键(key)生存时间
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。目录1.键(key)生存时间1.1.刷新过期1.2.Redis 2.1.3之前的版本差异1.3.返回值1.4.例子1.5.模式:导航会话附录:Redis过期1.带有过期键2.过期精度3.过期和持久性4.Redis如何过期键5.复制链接和AOF文件中如何处理过期1.键(key)生存时间Redis允许为每个键设置不同的生存时间,以便键过期后会自动将其从服务器中删除。时间复原创 2020-11-27 09:18:49 · 170 阅读 · 0 评论 -
Redis【有与无】【UR5】将Redis用作LRU缓存
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。目录1.将Redis用作LRU缓存1.1.Maxmemory配置指令1.2.驱逐政策(Eviction policies)1.3.驱逐过程如何进行1.4.近似LRU算法1.5.新的LFU模式1.将Redis用作LRU缓存当Redis用作缓存时,通常很方便在添加新数据时让它自动逐出旧数据。 此行为在开发人员社区中是众所周知的,因为它是流行的内存缓存系统的默认行为。LRU实际上只是支持的驱逐方法之原创 2020-11-27 10:07:46 · 143 阅读 · 0 评论 -
Redis【有与无】【UR5】事务
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。目录相关命令1.事务1.1.用法1.2.事务中的错误1.3.为什么Redis不支持回滚?1.4.丢弃命令队列1.5.使用检查和设置进行乐观锁定1.6.WATCH说明1.7.使用WATCH实现ZPOP1.8.Redis脚本和事务相关命令DISCARD EXEC MULTI UNWATCH WATCH1.事务MULTI,EXEC,DISCARD和WATCH是Red...原创 2020-11-27 10:55:32 · 140 阅读 · 0 评论 -
Redis【有与无】【UR6】Redis server-assisted 客户端缓存
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。目录1.Redis server-assisted 客户端缓存1.1.在计算机科学中只有两个大问题1.2.Redis的实现客户端缓存1.3.两种连接方式1.4.什么是跟踪轨道1.5.Opt-in缓存1.6.广播模式1.7.NOLOOP选项1.8.避免竞争条件1.9.与服务器断开连接时该怎么办1.10.缓存什么1.11.有关客户端库实施的其他提示1.12.限制Redis使用的内存原创 2020-11-27 11:54:26 · 152 阅读 · 0 评论 -
Redis【有与无】【UR7】Redis大量插入
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。目录1.Redis大量插入1.1.使用Luke协议1.2.生成Redis协议1.3.管道模式(pipe mode)在hood下如何工作1.Redis大量插入有时,Redis实例需要在短时间内加载大量预先存在或用户生成的数据,以便尽可能快地创建数百万个键。这称为批量插入,并且本文档的目标是提供有关如何尽可能快地向Redis提供数据的信息。1.1.使用Luke协议由于以下几个原因,使用普通的Red原创 2020-11-27 14:12:59 · 307 阅读 · 0 评论 -
Redis【有与无】【UR8】分区:如何在多个Redis实例之间拆分数据
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。目录1.分区:如何在多个Redis实例之间拆分数据1.1.为什么分区有用1.2.分区基础1.3.分区的不同实现1.4.分区的缺点1.5.数据存储还是缓存?1.6.预分片2.Redis分区的实现2.1.Redis集群(Redis Cluster)2.2.Twemproxy2.3.支持一致性哈希的客户端1.分区:如何在多个Redis实例之间拆分数据分区是将数据拆分为多个Redis实原创 2020-11-27 14:52:36 · 334 阅读 · 1 评论 -
Redis【有与无】【UR9】使用Redis的分布式锁
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。目录1.使用Redis的分布式锁1.1.实现1.2.安全与活动保障1.3.为什么基于故障转移的实现还不够1.4.单个实例正确实施1.5.Redlock算法1.6.算法是异步的吗?1.7.重试失败1.8.释放锁1.9.安全参数1.10.活力(Liveness)参数1.11.性能,崩溃恢复(crash-recovery)和fsync1.12.使算法更可靠:扩展锁1.使用..原创 2020-11-27 15:44:06 · 209 阅读 · 0 评论 -
Redis【有与无】【UR10】Redis键空间通知
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。目录1.Redis键空间通知1.1.功能概述1.2.事件类型1.3.配置1.4.不同命令生成的事件1.5.过期事件的时间1.6.集群中的事件1.7.历史重要提示:键空间通知是自2.8.0起可用的功能1.Redis键空间通知1.1.功能概述键空间通知允许客户端订阅发布/订阅通道,以便接收以某种方式影响Redis数据集的事件。可以接收的事件的示例是:所有影响给定键的命令。 所原创 2020-11-27 16:18:27 · 157 阅读 · 0 评论 -
Redis【有与无】【UR11】使用Redis进行二级索引
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。https://redis.io/topics/indexes目录1.使用Redis进行二级索引1.1.具有排序集的简单数字索引1.2.使用对象ID作为关联值1.3.更新简单的排序集索引1.4.将多维数据转换为线性数据1.5.分数极限2.词典索引(Lexicographical indexes)2.1.第一个例子:completion2.2.在mix中增加频率2.3.规范大小写和重音的原创 2020-11-30 09:24:40 · 2209 阅读 · 0 评论 -
Redis【有与无】【API-1】模块: API 介绍
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。1.模块: API 介绍模块文件由以下页面组成:Redis 模块介绍。Redis 模块系统与 API 综述。从这里开始阅读是个好主意 实现本机数据类型涵盖了将本机数据类型实现为模块 阻塞操作演示如何编写阻塞命令,这些命令不会立即响应,但会阻塞客户端,而不会阻塞 Redis 服务器,并且只要有可能就会提供响应 Redis模块 API 参考是从RedisModule函数的module.c顶部注释生成的。 这是...原创 2020-11-30 22:10:46 · 363 阅读 · 0 评论 -
Redis【有与无】【API-2】Redis 模块中的原生类型
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。目录1.Redis 模块中的原生类型1.1.原生类型概述1.2.注册新的数据类型1.3.为什么模块类型需要9个字符的名称?1.4.设置和获取键1.4.free方法1.5.RDB加载和保存方法1.6.AOF重写1.7.处理多种编码1.8.分配内存1.Redis 模块中的原生类型Redis模块可以在高层(通过调用Redis命令)和在低层(通过直接操作数据结构)访问Redis内置数据结构原创 2020-12-01 10:24:39 · 190 阅读 · 0 评论 -
Redis【有与无】【API-3】在Redis模块中阻塞(Blocking)命令
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。目录1.在Redis模块中阻塞(Blocking)命令1.1.阻塞和恢复的工作方式1.2.解除阻塞时传递回复数据1.3.中止阻塞客户1.4.使用单个函数实现命令,回复和超时回调1.5.在线程内处理数据副本1.6.未来的工作1.在Redis模块中阻塞(Blocking)命令Redis的内置命令集中有一些阻塞命令。 最常用的一种是BLPOP(或symmetricBLPOP),它阻塞等待元素...原创 2020-12-01 11:07:08 · 1639 阅读 · 0 评论 -
Redis【有与无】【API-4】模块API参考
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。本篇只是作为资料参考目录1.模块API参考RedisModule_AllocRedisModule_CallocRedisModule_ReallocRedisModule_FreeRedisModule_StrdupRedisModule_PoolAllocRedisModule_GetApiRedisModule_IsKeysPositionRequestRedisModule_K原创 2020-12-01 18:58:36 · 890 阅读 · 0 评论 -
Redis【有与无】【Admin-1】redis-cli
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。1. redis-cli,Redis命令行界面redis-cli是Redis命令行界面,这是一个简单的程序,可以将命令直接发送到Redis,并直接从终端读取服务器发送的回复。它有两种主要模式:交互式模式,其中存在一个REPL(Read Eval Print Loop),用户可以在其中键入命令并获得回复; 另一种模式是将命令作为redis-cli的参数发送,执行并打印在标准输出上。在交互模式下,redis-c.原创 2020-12-06 21:32:29 · 559 阅读 · 0 评论 -
Redis【有与无】【Admin-2】Redis配置
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。目录1.Redis配置1.1.通过命令行传递参数1.2.在服务器运行时更改Redis配置1.3.将Redis配置为缓存1.Redis配置Redis可以在不使用内置默认配置的配置文件的情况下启动,但是建议仅将此设置用于测试和开发目的。正确配置Redis的方法是提供一个Redis配置文件,通常称为 redis.conf。redis.conf文件包含许多格式非常简单的指令:keyword arg.原创 2020-12-06 21:45:13 · 145 阅读 · 0 评论 -
Redis【有与无】【Admin-3】复制
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。1.复制(Replication)在Redis复制的基础上(不包括Redis Cluster或Redis Sentinel作为附加层提供的高可用性功能),使用和配置领导者跟随者(主从)复制非常简单:它允许副本Redis实例精确主实例的副本。 每当链接断开时,该副本将自动重新连接到主数据库,并且无论该主数据库发生什么情况,它都将尝试作为该副本的精确副本。该系统使用三种主要机制工作:https://redis.io.原创 2020-12-11 14:32:50 · 167 阅读 · 0 评论 -
Redis【有与无】【Admin-4】Redis持久化
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。1.Redis持久化https://redis.io/topics/persistence原创 2020-12-11 15:46:00 · 134 阅读 · 0 评论 -
Redis【有与无】【Admin-5】Redis管理
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。1.Redis管理https://redis.io/topics/admin原创 2020-12-11 16:13:08 · 218 阅读 · 0 评论 -
Redis【有与无】【Admin-6】Redis安全
Redis安全本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。原创 2020-12-13 12:23:01 · 397 阅读 · 1 评论 -
Redis【有与无】【Admin-7】Redis访问控制列表(ACL)...
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。1.ACL(Redis Access Control Lists)https://redis.io/topics/acl原创 2020-12-13 21:02:07 · 1352 阅读 · 0 评论 -
Redis【有与无】【Admin-8】加密(TLS支持)
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。1.加密(TLS支持)https://redis.io/topics/encryption原创 2020-12-13 21:38:43 · 829 阅读 · 1 评论 -
Redis【有与无】【Admin-9】Redis信号处理
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。1.Redis信号处理https://redis.io/topics/signals原创 2020-12-13 21:52:01 · 165 阅读 · 0 评论 -
Redis【有与无】【Admin-10】Redis客户端处理
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。1.Redis客户端处理https://redis.io/topics/clients原创 2020-12-13 22:20:22 · 126 阅读 · 0 评论 -
Redis【有与无】【Admin-11】Redis Sentinel文档(高可用性)
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。1.高并发(Redis Sentinel文档)https://redis.io/topics/sentinel原创 2020-12-14 16:01:32 · 401 阅读 · 0 评论 -
Redis【有与无】【Admin-12】Redis延迟监控框架
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。1.Redis延迟监控框架https://redis.io/topics/latency-monitor原创 2020-12-14 16:30:00 · 223 阅读 · 0 评论 -
Redis【有与无】【Admin-13】Redis基准测试
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。1.Redis基准测试查看Redis在不同平台上的运行速度。https://redis.io/topics/benchmarks原创 2020-12-14 17:09:09 · 197 阅读 · 0 评论 -
Redis【有与无】【Admin-14】Redis发布周期
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。1.Redis发布周期https://redis.io/topics/releases原创 2020-12-14 17:19:13 · 281 阅读 · 0 评论 -
Redis【有与无】【T1】Redis数据类型和抽象简介
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。https://redis.io/topics/data-types-intro1.Redis数据类型和抽象简介Redis不是简单的key-value存储,它实际上是一个数据结构服务器,支持各种类型的值。 这意味着,尽管在传统的key-value存储中,您将string key与string value相关联,但是在Redis中,该值不仅限于简单的string,还可以容纳更复杂的数据结构。二进制安全字符串 List原创 2020-12-16 09:40:39 · 519 阅读 · 0 评论 -
Redis【有与无】【T2】Redis Streams介绍
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。https://redis.io/topics/streams-intro1.Redis Streams介绍原创 2020-12-17 11:02:41 · 629 阅读 · 0 评论 -
Redis【有与无】【T3】数据类型
本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。目录1.数据类型1.1.String1.2.List1.3.Set1.4.Hash1.5.Sorted set1.5.Bitmaps和HyperLogLogs1.数据类型1.1.StringString是Redis值中最基本的一种。 Redis String是二进制安全的,这意味着Redis String 可以包含任何类型的数据,例如JPEG图像或序列化的Ruby对象。一个String原创 2020-12-17 11:32:07 · 78 阅读 · 0 评论 -
Redis【有与无】【AC1】Redis编译使用说明
本文章基于Redis 6.0.9版本,对Redis配置进行说明1.什么是Redis?Redis通常被称为数据结构服务器。 这意味着Redis通过一组命令提供对可变数据结构的访问,这些命令使用带有TCP套接字和简单协议的 server-client 模型发送。 因此,不同的进程可以以共享的方式查询和修改相同的数据结构。在Redis中实现的数据结构具有一些特殊属性:即使始终为它们提供服务并将它们修改到服务器内存中,Redis也会将它们存储在磁盘上。 这意味着Redis速度很快,但它也是非易.原创 2020-12-17 22:03:21 · 626 阅读 · 0 评论 -
Redis【有与无】【AC2】Redis 安装、配置、集群搭建
本文章基于Redis 6.0.9版本,对Redis配置进行说明序:AC:ActualCombat 实战 系统版本:CentOS 8.3 Redis版本:Redis 6.0.91.准备阶段从Redis官网上下载最新的安装包(.tar.gz),目前是6.0.9,得到的压缩文件为 redis-6.0.9.tar.gz2.安装阶段cd /opt# 将压缩文件放到目录/opt下# 解压tar -zxvf redis-6.0.9.tar.gz# 重命名文件m...原创 2020-12-19 16:15:43 · 835 阅读 · 0 评论