[toc]
## 简介
REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo(redis之父)写的key-value存储系统。
Redis提供了一些丰富的数据结构,包括 lists, sets, ordered sets 以及 hashes还有和Memcached一样的strings结构.
Redis当然还包括了对这些数据结构的丰富操作。
总之它具有以下特点:
1. 数据结构丰富
2. 持久化
3. 支持简单事务
4. 主从配置方便
## redis和memcached相比
1. redis可以用来做存储(storge), 而memccached只能用来做缓存(cache),这个特点主要因为其有"持久化"的功能.
2. 存储的数据有"结构",对于memcached来说,存储的数据,只有1种类型--"字符串",而redis则可以存储字符串,链表,哈希结构,集合,有序集合.
## 安装
### Linux(centOS)下安装redis
wget http://download.redis.io/releases/redis-3.0.7.tar.gz
tar zxvf redis-3.0.7.tar.gz
cd redis-3.0.7
# 源码是官方configure过的,这个地方可以跳过configure,直接make,但是在make的时候有可能遇到时间错误,原因是源码是在官方configure时,生成的文件有时间戳信息,Make只能发生在configure之后,如果虚拟机时间不对的话,就要重写时间
# date -s 'yyyy-mm-dd hh:mm:ss'
# clock -w
make PREFIX=/usr/local/redis install # 注意PREFIX是大写
# 可选步骤 make test 测试编译情况
安装完成之后得到以下几个文件:
redis-benchmark 性能测试工具
redis-check-aof 日志文件检测工具(比如断电造成日志损坏,可以检测并修复)
redis-check-dump 快照文件检测工具,效果类上
redis-cli 客户端
redis-server 服务端
### Linux(centOS)下php-redis扩展编译
1. 到pecl.php.net 搜索redis
2. 下载stable版(稳定版)扩展
3. 解压进入,执行/php/path/bin/phpize (作用是检测PHP的内核版本,并为扩展生成相应的编译配置)
4. `./configure --with-php-config=/usr/bin/php-config`
5. `make && make install`
6. 编译完以后最后一行 `Installing shared extensions: /usr/lib/php/modules/`告之扩展在哪里;然后在php.ini中添加既可;
>[info] 也可以直接使用compose包`predis/predis`
### windows下安装
redis不建议在windows上使用,如果因为开发等因素的确需要安装的话,主要参考以下链接安装即可
redis在windows下的安装:
http://www.cnblogs.com/linjiqin/archive/2013/05/27/3101694.html
php-redis扩展的安装:
http://blog.chinaunix.net/uid-11121450-id-3261252.html
redis的github
https://github.com/dmajkic/redis/downloads
php-redis.dll的github
https://github.com/nicolasff/phpredis/downloads
## 启动
### 启动服务
让redis以后台进程的形式运行,编辑conf配置文件,修改如下内容:
`daemonize yes`
/path/redis-server /path/redis.conf #这里的conf可以自由指定,可以先通过 --help来看一下
### 启动客户端
path/to/redis/bin/redis-cli [-h localhost -p 6379 ] # 如果是要在redis的shell中显示中文的话可以加上 --raw 启动
## 参考链接
* [官网链接](https://redis.io/)
* [redis中文网](https://www.redis.net.cn/)
* [redis命令参考](http://redisdoc.com/index.html)
* [菜鸟教程](https://www.runoob.com/redis/redis-tutorial.html)