一、Redis 介绍
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
作为Key-value型数据库,Redis也提供了键(Key)和键值(Value)的映射关系。但是,除了常规的数值或字符串,Redis的键值还可以是以下形式之一:
- String(字符串)
- Lists (列表)
- Sets (集合)
- ZSet (Sorted sets 有序集合)
- Hashes (哈希表)
键值的数据类型决定了该键值支持的操作。Redis支持诸如列表、集合或有序集合的交集、并集、差集等高级原子操作。同时,如果键值的类型是普通数字,Redis则提供自增等原子操作。
通常,Redis将数据存储于内存中,或被配置为使用虚拟内存。通过两种方式可以实现数据持久化:使用快照的方式,将内存中的数据不断写入磁盘;或使用类似MysqL的日志方式,记录每次更新的日志。前者性能较高,但是可能会引起一定程度的数据丢失;后者相反。
Redis支持将数据同步到多台从库上,这种特性对提高读取性能非常有益。
相比需要依赖磁盘记录每个更新的数据库,基于内存的特性无疑给Redis带来了非常优秀的性能。读写操作之间有显著的性能差异。
二、Redis 在 Windows 下的安装
Redis官方(http://redis.io/)提供了源代码下载但是并不能直接运用与Windows系统,好在牛人做了一个第三方的预编译文件。
下载地址为:https://github.com/dmajkic/redis/downloads
在上面的地址下载合适的版本,解压下载后的文件夹,你会看到有 32 位 或 64 位两个文件夹,选择合适你电脑的版本。
这里我选择了 64 位版本。因为 Redis 除了要有服务器端之外,还需要有客户端,因此我将 64bit 文件夹再复制两份,再重新命名,将它们分别作为服务端和2个客户端(其实你也可以不这样做,但这样做我感觉结构更清晰些)。
运行 redis64bit_server/redis-server.exe,命令行会一直提示:目前有 0 个用户连接。
之后运行 redis64bit_client_1/redis-cli.exe、redis64bit_client_2/redis-cli.exe 连接 Redis 服务器,服务端会接收到响应,提示已收到连接请求,并显示已有 2 个客户端连接。
此时,我们在 client1 中用 "set hello world" 存入字符串,在client2 中也可以获取到该数据。
三、Redis 在 Linux 下的安装
首先,利用 wget 命令直接下载、解压、编译安装包:
$ wget http://download.redis.io/releases/redis-3.0.3.tar.gz $ tar xzf redis-3.0.3.tar.gz $ cd redis-3 $ make
这样 Redis 就可以使用了。我们运行服务端
$ src/redis-server
运行一个客户端:
$ src/redis-cli
在客户端测试一下:
redis> set foo bar OK redis> get foo "bar"
Redis 由四个可执行文件:redis-benchmark、redis-cli、redis-server、redis-stat 这四个文件,加上一个 redis.conf 就构成了整个 redis 的最终可用包。它们的作用如下:
- redis-server:Redis服务器的daemon启动程序。
- redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作。
- redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能。
- redis-stat:Redis状态检测工具,可以检测Redis当前状态参数及延迟状况。