Memcache
https://github.com/uiste/PHP_Class_Library/tree/master/php-memcached
Redis
一.下载安装
- 下载:
http://redis.io/
- 移动:
uiste:~ uiste$ cd downloads
- 解压:
uiste:local uiste$ sudo tar -zxf redis-3.2.5.tar.gz
- 进入:
uiste:local uiste$ cd redis-3.2.5
- 测试编译:
uiste:redis-3.2.5 uiste$ sudo make test
安装:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18uiste:redis-3.2.5 uiste$ sudo make install
Password:
cd src && /Applications/Xcode.app/Contents/Developer/usr/bin/make install
INSTALL redis-sentinel
CC redis-cli.o
LINK redis-cli
CC redis-benchmark.o
LINK redis-benchmark
INSTALL redis-check-rdb
Hint: It's a good idea to run 'make test' ;)
INSTALL install
INSTALL install
INSTALL install
INSTALL install
INSTALL install
uiste:redis-3.2.5 uiste$配置文件redis.conf
redis解压目录里有一个配置文件redis.conf ,编辑此配置文件,找到 dir ./ 这一行。redis会将内存中的数据写入文件中,而此配置就是指定数据文件保存的路径。我本机指定的目录为:247 dir /Users/uiste/Software/redis_data/
编辑过后,将配置文件移动到 /usr/local/etc 目录下uiste:redis-3.2.5 uiste$ sudo mv redis.conf /usr/local/etc
启动
uiste:redis-3.2.5 uiste$ /usr/local/bin/redis-server /usr/local/etc/redis.conf
服务启动成功画面:
测试连通性
1
2
3
4
5
6uiste:~ uiste$ cd /usr/local/bin
uiste:bin uiste$ ./redis-cli
127.0.0.1:6379> set name uiste
OK
127.0.0.1:6379> get name
"uiste"设置开机自动启动redis server
新建plist文件uiste:~ uiste$ sudo vi /Library/LaunchDaemons/io.redis.redis-server.plist
文件内容如下1
2
3
4
5
6
7
8
9
10
11
12
13<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>io.redis.redis-server</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/redis-server</string>
<string>/usr/local/etc/redis.conf</string>
</array>
<key>RunAtLoad</key><true/> </dict>
</plist>
使用launchctl设置开机自动启动uiste:~ uiste$ sudo launchctl load /Library/LaunchDaemons/io.redis.redis-server.plist
使用launchctl启动redis serveruiste:~ uiste$ sudo launchctl start io.redis.redis-server
使用launchctl停止redis serveruiste:~ uiste$ sudo launchctl stop io.redis.redis-server
启动
uiste:~ uiste$ redis-cli
上述方法启动redis时是以非密码形式登录的,许多操作可能会出现 (error) NOAUTH Authentication required.
解决此问题的方法之一就是找到 /etc/redis.conf,并将#requirepass 前的 “#” 去掉。由于每个人电脑不同,有可能没法在 /etc 路径下找到redis.conf, 因此可以选择采用第二种方法:
(1)、按照原来方式 ./redis-cli 进入redis 客户端, 输入config set requirepass XXX,其中XXX是你要设置的密码。此时会出现 “OK”;
(2)、之后返回bin目录下,输入 redis-cli -h 127.0.0.1 -p 6379 -a XXX, 就相当于以密码形式登录了。此后也不会再有身份验证失败问题。
(3)、可以使用config get requirepass 查看密码
四.服务器配置
上面只是基本的安装,如果要用到生产环境,得配置一些文件
1.首先把redis-cli 移动到/usr/local/bin 目录,方便执行,和JAVA_HOME 类似
默认install 的时候已经有了
2.创建你存放配置文件和数据文件的目录
sudo mkdir /etc/redis
sudo mkdir /var/redis
3.复制初始化脚本到/etc/init.d 目录,建议默认只有这个端口,作开机启动
$ sudo cp utils/redis_init_script /etc/init.d/redis_6379
4.进入脚本,确保你的REDISPORT 是你正在使用的
sudo vi /etc/init.d/redis_6379
5.复制redis.conf ,和脚本保持一致
sudo cp redis.conf /etc/redis/6379.conf
6.创建一个存放工作数据的目录
sudo mkdir /var/redis/6379
同时可以对redis.conf配置其他属性
daemonize:是否以后台daemon方式运行
pidfile:pid文件位置
port:监听的端口号
timeout:请求超时时间
loglevel:log信息级别
logfile:log文件位置
databases:开启数据库的数量
save :保存快照的频率,第一个表示多长时间,第三个表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
rdbcompression:是否使用压缩
dbfilename:数据快照文件名(只是文件名,不包括目录)
dir:数据快照的保存目录(这个是目录)
appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)
7.最后将脚本设置默认启动
sudo update-rc.d redis_6379 defaults
8.现在可以执行脚本了
/etc/init.d/redis_6379 start