Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
作为Key-value型数据库,Redis也提供了键(Key)和键值(Value)的映射关系。但是,除了常规的数值或字符串,Redis的键值还可以是以下形式之一:
键值的数据类型决定了该键值支持的操作。Redis支持诸如列表、集合或有序集合的交集、并集、差集等高级原子操作。同时,如果键值的类型是普通数字,Redis则提供自增等原子操作。
通常,Redis将数据存储于内存中,或被配置为使用虚拟内存。通过两种方式可以实现数据持久化:使用快照的方式,将内存中的数据不断写入磁盘;或使用类似MySQL的日志方式,记录每次更新的日志。前者性能较高,但是可能会引起一定程度的数据丢失;后者相反。
Redis支持将数据同步到多台从库上,这种特性对提高读取性能非常有益。
相比需要依赖磁盘记录每个更新的数据库,基于内存的特性无疑给Redis带来了非常优秀的性能。读写操作之间有显著的性能差异。
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 中也可以获取到该数据。
首先,利用 wget 命令直接下载、解压、编译安装包:
$ wget http://download.redis.io/releases/redis-3.0.3.tar.gz
$ tar xzf redis-3.0.3.tar.gz
$ cd redis-3.0.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 的最终可用包。它们的作用如下: