本文档是一篇草案,其包含的指引将来可能会随着Sentinel项目的进展而改变。 支持Redis Sentinel的Redis客户端指引Redis Sentinel是Redis实例的监控解决方案,处理Redis主服务器的自动故障转移和服务发现(谁是一组实例中的当前主服务器)。
分割下的一致性(Consistency under partitions)Redis Sentinel 的配置是最终一致性的,所以每个分区会被统一到一个可用的更高版本的配置。但是,在使用 Sentinel 的真实世界系统中有三个不同的角色: Redis 实例。Sentinel 实例。客户端。为了定义系统的行为,我们得考虑这三个角色。
Redis Sentinel 是 Redis 的官方高可用解决方案,是设计用来帮助管理 Redis 实例的系统。用于完成下面 4 个任务: 监控(Monitoring)。Sentinel 不断检查你的主从实例是否运转正常。通知(Notification)。Sentinel 可以通过 API 来通知系统管理员,或者其他计算机程序,被监控的 Redis 实例出了问题。自动故障转移(Automatic failover)。
有时候 Redis 实例需要在短时间内加载大量的已存在数据,或者用户产生的数据,这样,上百万的键将在很短的时间内被创建。 这被称为集中插入(mass insertion),这篇文档的目的,就是提供如何最快地向 Redis 中插入数据的一些相关信息。
本文提供对 Redis 持久化(persistence)的技术性描述,适合所有的 Redis 用户来阅读。想获得对 Redis 持久化和持久性保证有更全面的了解,也可以读一下作者的博客文章(地址为 http://antirez.com/post/redis-persistence-demystified.html,译者注)。
Redis 的复制 (replication) 是一种使用和配置起来非常简单的主从(master-slave)复制,允许 Redis 从服务器成为主服务器的精确副本。以下是关于 Redis 复制的一些重要方面: Redis 采用异步复制。从 Redis 2.8 开始,从服务器会周期性地报告从复制流中处理的数据量。一个主服务器可以拥有多个从服务器。从服务器可以接受其他从服务器的连接。
分片(partitioning)就是将你的数据拆分到多个 Redis 实例的过程,这样每个实例将只包含所有键的子集。本文第一部分将向你介绍分片的概念,第二部分将向你展示 Redis 分片的可选方案。 分片为何有用(Why useful)Redis 的分片承担着两个主要目标: 允许使用很多电脑的内存总和来支持更大的数据库。没有分片,你就被局限于单机能支持的内存容量。
当 Redis 作为缓存使用时,当你添加新的数据时,有时候很方便使 Redis 自动回收老的数据。这种行为在开发者社区中众所周知,因为这是流行的 memcached 系统的默认行为。 LRU 实际上是被唯一支持的数据移除方法。本文内容将包含 Redis 的 maxmemory 指令,用于限制内存使用到一个固定的容量,也包含深入探讨 Redis 使用的 LRU 算法,一个近似准确的 LRU。
把 loadUserInfo 作为一个单独的函数有点大题小做了,但是在复杂的程序中这是一个很好的方法。认证中唯一被遗漏的事情就是登出了。我们怎么来做登出呢?很简单,我们改变 user:1000 的 auth 字段中的随机串,从 auths 哈希中删除旧的认证秘钥,然后添加一个新的。
本文讲述使用 PHP 以及 Redis 来设计和实现一个简单的微博。编程社区传统上认为,在开发 web 应用程序时,作为特殊目的的键值存储数据库不能用于替换关系型数据库。本文将向你展示 Redis 在键值层之上的数据结构是实现各种应用程序的有效数据模型。 在继续之前,你可以花点时间体验一下在线演示(http://retwis.redis.io,译者注),看看我们究竟要做什么。
Redis 有序集合 (Sorted sets)有序集合类似于集合和哈希的混合体的一种数据类型。像集合一样,有序集合由唯一的,不重复的字符串元素组成,在某种意义上,有序集合也就是集合。 集合中的每个元素是无序的,但有序集合中的每个元素都关联了一个浮点值,称为分数(score,这就是为什么该类型也类似于哈希,因为每一个元素都映射到一个值)。
Redis 列表(Lists)为了解释列表类型,最好先开始来点理论,因为列表这个术语在信息技术领域常常使用不当。例如,”Python Lists”,并不是字面意思(链表),实际是表示数组 (和 Ruby 中的 Array 是同一种类型)。 通常列表表示有序元素的序列:10,20,1,2,3 是一个列表。但是数组实现的列表和链表实现的列表,他们的属性非常不同。 Redis 的列表是使用链表实现的。
Redis 不是一个无格式 (plain) 的键值存储,而是一个支持各种不同类型值的数据结构服务器。这就是说,传统键值存储是关联字符串值到字符串键,但是 Redis 的值不仅仅局限于简单字符串,还可以持有更复杂的数据结构。下面列的是 Redis 支持的所有数据结构,后面将逐一介绍: 二进制安全 (binary-safe) 的字符串。
字符串 (Strings)字符串是 Redis 最基本的数据类型。Redis 字符串是二进制安全的,也就是说,一个 Redis 字符串可以包含任意类型的数据,例如一张 JPEG 图像,或者一个序列化的 Ruby 对象。 一个字符串最大为 512M 字节。 你可以使用 Redis 的字符串类型做很多有意思的事情,例如,你可以: 使用 INCR 命令族 (INCR,DECR,INCRBY),将字符串作为原子计数器。
Redis 是一款开源的,基于 BSD 许可的,高级键值 (key-value) 缓存 (cache) 和存储 (store) 系统。由于 Redis 的键包括 string,hash,list,set,sorted set,bitmap 和 hyperloglog,所以常常被称为数据结构服务器。
Redis 3.0.0 正式版终于到来了!最重要的新特性是集群(Redis Cluster),提供 Redis 功能子集(比如不支持多数据库)的分布式、容错的实现(最多支持 1000 结点)。本教程是 Redis 3.0 官方文档的翻译版,内容上突出新特性,旨在帮助读者快速上手并掌握 Redis 3.0 的知识点。适用人群本教程为中级教程,适用于基于 Redis 数据库的应用开发者。
MongoDB 没有提供类似 SQL 数据库所具有的自动增长功能(auto-increment)。默认情况下,MongoDB 将 _id 字段(使用 12 字节的 ObjectId)来作为文档的唯一标识。但在有些情况下,我们希望 _id 字段值能够自动增长,而不是固守在 ObjectId 值上。 由于这不是 MongoDB 的默认功能,所以我们按照 MongoDB 文档所建议的方式,使用 counters 集合来程序化地实现该功能。
固定集合(Capped Collection)是一种尺寸固定的“循环”集合,可提供高效的创建、读取、删除等操作。这里所指的“循环”的意思是,当分配给集合的文件尺寸耗尽时,就会自动开始删除最初的文档,不需要提供任何显式的指令。 如果文档更新后增加了文档的尺寸,那么固定集合会限制对文档的更新。
GridFS 简介GridFS 是 MongoDB 的一个用来存储/获取大型数据(图像、音频、视频等类型的文件)的规范。它相当于一个存储文件的文件系统,但它的数据存储在 MongoDB 的集合中。GridFS 能存储超过文档尺寸限制(16 MB)的文件。 GridFS 将文件分解成块,将每块数据保存在不同的文档中,每块大小最高为 255 KB。 GridFS 默认使用 fs.files 和 fs.
Rockmongo 是一个 MongoDB 的管理工具,可以用来管理服务器、数据库、集合、文档、索引以及很多其他内容。它的操作简单便利,易于读写创建文档。它的作用有点像是 PHP 和 MySQL 所使用的 PHPMyAdmin 工具。 下载 Rockmongo从这里下载最新版的 Rockmongo。 安装 Rockmongo下载完毕后,可以将包解压缩至服务器的根目录处,将解压文件夹重新命名为 rockmongo。
关注时代Java