前言
本文的内容主要来源于Redis官网文章:《Introduction to Redis》,我做的工作是对该文进行翻译和扩展。可能有朋友要问了,“Redis中国已经做了相同的事情,你为什么还要翻译呢?”这个问题很好解答,我虽然做的也是翻译,但是,我的翻译并非直译,我会在保留原意的基础上力求把语句翻译的通俗易懂。并且,我还扩展周边的知识点,确保让Redis零基础的技术人也可以读懂整套文章。因为,本文并非直译,因此文章的结构会与原文不同,请各位读者不要在意。
Redis是什么
Redis是一个基于BSD的内存型数据结构存储工具,可作为数据库,缓存和消息代理。Redis支持字符串、散列、列表、集合、有序集合与范围查询、bitmap(?比特集)、hyperloglogs(?高速日志)和 geospatial indexes with radius queries.(?地理信息索引)。Redis内置了复制,Lua,LRU事件驱动,事务和不同级别的磁盘持久化,并通过哨兵和自动分区提供高可用。
Redis的原子操作简介
Redis是可以进行原子操作的,原子操作的种类很多,此处结合官网列出如下例子:
1.添加字符串
2.递增哈希的值
3.为列表添加一个元素
4.计算集合增长、并集、差集
5.在有序集合里面获取成员的最高排名
Redis的主要工作方式
为了实现卓越的性能, Redis采用运行在内存中的数据集工作方式。根据用户的使用场景,可以每隔一定时间将数据集转入到磁盘,或者追加到命令日志中。另外,可以关闭持久化功能,将Redis作为一个性能优越的网络缓存使用。
Redis 同样支持异步主从复制(能自动重连和网络断开时自动重新同步),并且第一次同步是快速的非阻塞同步。
Redis的其他特性
1.事务
2.订阅/分发
3.Lua
4.键的时间期限
5.键的回收
6.自动故障容错
本套文章的开发语言选择
1.Node:项目开发,我会开发一个机器学习的工具
2.ANSI C:阅读Redis源码
3.Java:扩展学习
注意:Redis可以支持上百种不同的语言和支持库,本套文章,只做简单介绍。
Redis的系统选择
Redis是工作在POSIX系统上的(Linux、*BSD、无对外依赖的OS X)。Redis在Linux 和 OS X上已经进行了大量的开发、测试,但是,更推荐使用Linux进行部署。 另外,Redis开发组也做出了很大的努力,保障Redis可以工作在 如SmartOS这样的Solaris衍生系统上。目前,官方不支持Windos版本的Redis,但微软开发和维护着支持win-64 的Redis版本。