《Redis官方文档》使用Redis作为LRU缓存

原文链接  译者:boyhou (WeChat:HouYongBo923)

如果你使用redis作为缓存,当添加新数据时,若有内存大小等限制,系统默认会根据一定的规则自动清理旧数据。这种处理方式在开发社区中众所周知,因为它也是非常流行的缓存系统 memcached 的默认处理方式。

LRU(LRU全称是Least Recently Used,即最近最久未使用)实际上只是Redis支持的内存回收策略中的一种。这篇文章将要讲述Redis的 maxmemory 配置选项,该配置选项用来限制 Redis 的内存使用大小,同时深入研究 LRU(确切的说是近似LRU算法) 算法在 Redis 中的应用。

阅读全文

阿里感悟(九)- 能力和晋升

作者:方腾飞Workshop. Dude the Business people X 6 at meeting. Looking at bl

晋升是一个水到渠成的过程,能力到了自动就能晋升。所以需要努力突破自己,超越本层级的能力,并创造当前层级的人创造不出来的价值。晋升意味着对自己更高的要求,更高的责任和更多的思考。

如何才能突破自己能力?

首先要做的是改变习惯。在阿里很流行的一句话是,当自己不舒服的时候就是自己成长的时候。比如老大和我说要学会到先规划再做事情,而不是想到哪做到哪。这句话看起来简单,但是做起来很难,因为要打破自己已有的做事习惯,就像你习惯8点起床,现在让你每天6点起床,你肯定会很不习惯。 阅读全文

《Redis官方文档》Redis调试指南

原文链接      译者:Adeline

Redis开发过程中十分注重其稳定性:我们尽一切努力来保证每一个版本的稳定,不出现突然崩溃等情况。但是即使在我们百分百的努力下,仍然没办法保证百分百的无bug。

Redis出现崩溃时,会生成一个详细的报告来描述当时的情景,但是有时候只看报告还不够,而且Redis的核心开发团队可能也没办法独立重现你出现崩溃时候的场景:在这种情况下,我们需要用户能够重现这个情景来帮助我们。

这个指南讲解了如何使用GDB来获得Redis开发者可能用到的信息。

阅读全文

Redis的数据类型和抽象概念介绍

原文链接 译者:carvin

Redis 不是一个 简单的 key-value 存储,实际上它是一个数据结构服务器,它支持不同类型的值。也就是说,在传统的key-value存储中,你将一个字符串的key关联到一个字符串的值上;而在Redis中,值不仅仅局限于简单的字符串,还同时支持其他复杂的数据结构。以下的列表是所有Redis支持的数据结构,在这篇指南中将一一介绍:

阅读全文

《Redis官方文档》 redis 虚拟内存

原文链接 译文链接 译者: youxin2012
重点提示:
Redis 的虚拟内存(VM) 目前不被提倡使用,Redis 2.4将是有虚拟内存特性的最新版本(但它同样提示不鼓励使用虚拟内存)。我们发现使用虚拟内存会有一些不足和问题。对于Redis的未来,至少目前在不考虑支持比RAM更大的数据库时,我们希望能提供最好的内存数据库(持久化仍然在磁盘上)。我们随后的成果将关注提供脚本,集群以及更好的持久化方面。

虚拟内存

Redis 虚拟内存这一特性将首次出现在Redis 2.0的一个稳定发布版中。目前Git上Redis 不稳定分支的虚拟内存(从现在起称之为VM)已经可以使用,并且经试验证明足够稳定。

阅读全文

《Redis官方文档》分区

原文链接   译者:Alexandar Mahone

分区:如何把数据存储到多个Redis实例中

分区就是把你的数据分割到多个Redis实例中的一个过程,因此每个实例仅仅包含部分键。这篇文章第一部分介绍分区概念,第二部分将介绍Redis分区的用法。

(译者注:Redis集群是分区事实上标准)

阅读全文

《Redis官方教程》-基准测试

原文连接  译者:looyup

Redis有多快?

Redis 包含了工具程序redis-benchmark,它可以模拟运行命令,相当于模拟N个客户端同时发送总数M个查询(和apache的ab工具程序类似)。下面是在linux系统上执行benchemark后的完整输出,支持的选项如下:

阅读全文

《Redis官方文档》用Redis构建分布式锁

原文链接  译者:yy-leo   校对:方腾飞(红体标记重点)

用Redis构建分布式锁

在不同进程需要互斥地访问共享资源时,分布式锁是一种非常有用的技术手段。 有很多三方库和文章描述如何用Redis实现一个分布式锁管理器,但是这些库实现的方式差别很大,而且很多简单的实现其实只需采用稍微增加一点复杂的设计就可以获得更好的可靠性。 这篇文章的目的就是尝试提出一种官方权威的用Redis实现分布式锁管理器的算法,我们把这个算法称为RedLock,我们相信这个算法会比一般的普通方法更加安全可靠。我们也希望社区能一起分析这个算法,提供一些反馈,然后我们以此为基础,来设计出更加复杂可靠的算法,或者更好的新算法。

阅读全文

《Redis官方教程》-FAQ

原文链接   译者:Alexandar Mahone  校对:方腾飞(红体标记重点)

为什么Redis不同于其他的键值存储数据库?

有两个主要原因:

  • Redis发展方向不同与其他键值数据库,它能包含很多复杂数据类型,对这些数据类型操作都是原子的。Redis数据类型与基本数据结构强相关,直接暴露给程序员,没有增加抽象层。
  • Redis是一个内存数据库,而不是持久化在硬盘数据库中,因此为了实现高速读写,数据集大小不能超过内存。内存数据库另一个优点是,内存数据库相对于硬盘数据库非常容易操作复杂数据结构,因此Redis的可以做很多事情,很少有内部的复杂性。与此同时两款磁盘存储格式(RDB和AOF)不需要支持随机访问,因此他们是紧凑的,而且总是以追加形式生成(甚至AOF日志轮换也是一个追加操作,因为新版本是由内存中的副本生成)。

阅读全文

阿里感悟系列文章

作者:方腾飞

最近几年经常有应届生和朋友咨询我各种学习和工作上的问题,每次我都会耐心的解答,渐渐发现很多问题都有相似之处,所以就想把我的回答整理成文,可能可以能帮助更多的同学,由于工作非常忙,很多文章经常写到凌晨2点才写完,所以大部分内容没有打磨和校对,原文中难免还会出现一些错误,欢迎各位读者参与校对和提建议,比如你们希望看什么内容。本文目录的内容会随时调整。

阅读全文

初探设计:Java继承何时用?怎么用?

Writer      :BYSocket(泥沙砖瓦浆木匠)

一、回顾继承

常见的如下:

1、依赖(”uses-a“)

2、聚合(”has-a“)

3、继承(”is-a“)类之间关系

也就是UML类图中常见的三种关系,另外常见的还有实现(接口与实现类的关系),组合等。
阅读全文

阿里感悟(十四)-如何带新员工

Teacher and Students. Dude X12 the students and Teacher in class作者:方腾飞  本文首发于并发网

引言

在阿里,每一位新员工进来之后都会有一位导师,导师一般都是团队中非常优秀的员工。有些部门可能不叫导师了,而是叫师兄,可能更亲切,但是我觉得导师更贴切。

导师指导新员工的过程,我觉得应该是一个PDCA的过程,即计划,执行,检查和总结。

阅读全文

《Redis官方文档》主从复制

原文链接       译文连接  译者:adeline   校对:方腾飞(重点地方标成了粗体,方便大家阅读)

Redis主从复制的配置十分简单,它可以使从服务器是主服务器的完全拷贝。下面是关于Redis主从复制的几点重要内容:

  • Redis使用异步复制。但从Redis 2.8开始,从服务器会周期性的应答从复制流中处理的数据量。
  • 一个主服务器可以有多个从服务器。
  • 从服务器也可以接受其他从服务器的连接。除了多个从服务器连接到一个主服务器之外,多个从服务器也可以连接到一个从服务器上,形成一个图状结构
  • Redis主从复制不阻塞主服务器端。也就是说当若干个从服务器在进行初始同步时,主服务器仍然可以处理请求。
  • 主从复制也不阻塞从服务器端。当从服务器进行初始同步时,它使用旧版本的数据来应对查询请求,假设你在redis.conf配置文件是这么配置的。否则的话,你可以配置当复制流关闭时让从服务器给客户端返回一个错误。但是,当初始同步完成后,需要删除旧的数据集和加载新的数据集,在这个短暂的时间内,从服务器会阻塞连接进来的请求。
  • 主从复制可以用来增强扩展性,使用多个从服务器来处理只读的请求(比如,繁重的排序操作可以放到从服务器去做),也可以简单的用来做数据冗余。
  • 使用主从复制可以为主服务器免除把数据写入磁盘的消耗:在主服务器的redis.conf文件中配置“避免保存”(注释掉所有保存命令),然后连接一个配置为“进行保存”的从服务器即可。但是这个配置要确保主服务器不会自动重启(要获得更多信息请阅读下一段)

阅读全文

《Redis官方教程》Redis集群规范

原文链接(on 20 Jul)  作者:antirez  译者:carlvine

 

Redis集群规范


欢迎来到Redis集群规范。在这里你可以找到有关Redis的算法和设计的基本原理。这篇文章是一项正在进行的工作,因为它是不断地与Redis的实际实现同步。

阅读全文

《Redis官方文档》Redis集群教程

原文链接 译文链接 译者: tiffany

这篇教程是Redis集群的简要介绍,而非讲解分布式系统的复杂概念。它主要从一个使用者的角度介绍如何搭建、测试和使用Redis集群,至于Redis集群的详细设计将在“Redis集群规范”中进行描述。

本教程以redis使用者的角度,用简单易懂的方式介绍Redis集群的可用性和一致性。

注意: 本教程要求redis3.0或以上的版本。

如果你打算部署redis集群,你可以读一些关于集群的详细设计,当然,这不是必须的。由这篇教程入门,先大概使用一下Redis的集群,然后再读Redis集群的详细设计,也是不错的选择。

阅读全文

return top