0

Redis 安装及配置

已有 2,809 人阅读此文 - -

下载安装

$ wget http://redis.googlecode.com/files/redis-2.4.15.tar.gz  
$ tar xzf redis-2.4.5.tar.gz //这里假设解压缩到/usr/local/redis  
$ cd redis-2.4.5  
$ make  
$ make install  
$ cd utils  
$./install_server

就会自动安装到/usr/local/bin目录下。在该目录下生成几个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-stat、redis-check-aof,它们的作用如下:
redis-server:Redis服务器的daemon启动程序
redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作
redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能
redis-stat:Redis状态检测工具,可以检测Redis当前状态参数及延迟状况
redis-check-aof:

安装时的最后一步install_server脚本会生成启动命令文件(试试就知道),下面就是一个执行例子

Welcome to the redis service installer
This script will help you easily set up a running redis server

Please select the redis port for this instance: [6379]
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf]
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log]
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379]
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server]
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...
Installation successful!

/etc/init.d/redis_6379 start
将启动服务到默认端口6379

 

客户端访问

$ redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

关闭服务

$ /etc/init.d/redis_6379 stop

在我们成功安装Redis后,我们直接执行redis-server即可运行Redis,此时它是按照默认配置来运行的(默认配置甚至不是后台运行)。我们希望Redis按我们的要求运行,则我们需要修改配置文件(在redis解压缩目录下有一个redis.con可以作为范本),下面是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等待系统自己同步)

下面是一个略做修改后的配置文件内容

Redis.conf代码

daemonize yes
pidfile /usr/local/redis/var/redis.pid
port 6000
timeout 300
loglevel debug
logfile /usr/local/redis/var/redis.log
databases 16
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /usr/local/redis/var/
appendonly no
appendfsync always
glueoutputbuf yes
shareobjects no
shareobjectspoolsize 1024

重启服务

redis-server /usr/local/redis/redis.conf

试试看读写是否有问题.如果服务器启动到了指定非默认端口,那么客户端连接则需要-p参数
如:

$redis-cli -p 6380

开放服务器端口供其他主机连接

vi /etc/sysconfig/iptables #需要具备其修改权限
可能需要增加一行:
# redis
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 6379 -j ACCEPT
保存后重启iptables:
service iptables restart (PATH中加入了/sbin/)或者 /etc/init.d/iptables restart

PHP客户端
Redis的php客户端库非常之多,code.google.com上就有:
* phpredis
http://code.google.com/p/phpredis/ 是C客户端作为php模块

* php-predis
http://code.google.com/p/php-redis/ 纯php客户端
以上两个都不在Redis官方推荐推荐之列。

Redis推荐客户端链接是:http://redis.io/clients,如下图:

纯php库Predis(便于hack),但是性能不高。https://github.com/nrk/predis
下载该库文件后运行bin/createSingleFile.php可以生成一个类库文件Predis.php,非常方便使用。下面是最简单的一个Hello World应用:

Php代码
  1. <?php
  2. require(‘Predis.php’);
  3. $single_server = array(
  4.     ‘host’     => ‘192.168.1.101’,
  5.     ‘port’     => 6379,
  6.     ‘database’ => 15
  7. );
  8. $client = new Predis\Client($single_server);
  9. $client->set(‘library’, ‘predis’);
  10. $retval = $client->get(‘allen ‘);
  11. var_dump($retval);

我推荐使用的客户端是:phpredis  https://github.com/nicolasff/phpredis
windows版的dll从这里下载https://github.com/char101/phpredis/downloads

0
相关文章!