安装Redis、PHPredis扩展及Redis配置文件详解

来源:互联网 发布:销售信心 知乎 编辑:程序博客网 时间:2024/05/01 07:02
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://yanshisan.blog.51cto.com/7879234/1377992

redis简介

  redis是一款很不错的高性能的key-value数据库;它的出现在很大程度上弥补了很多像memcached这类的keyvalue存储的不足,它的特点有:支持持久化.半持久化数据保存,支持主从同步,value值支持多种类型等等;更多具体知识内容可以参照:http://redisbook.readthedocs.org/en/latest/  http://blog.jobbole.com/44476/这两篇,写的还是很不错的!!!!!

redis安装

1. 下载Redis

1
2
cd /usr/src
wget http://download.redis.io/releases/redis-2.8.7.tar.gz

2. 编译安装Redis

1
2
3
4
tar xf redis-2.8.7.tar.gz
cd redis-2.8.7
make
make install

3. 创建redis的配置文件

1
2
mkdir /etc/redis
cp redis.conf /etc/redis/redis.conf

4. 调整下内存分配使用方式并使其生效

1
2
3
4
5
6
echo “vm.overcommit_memory=1”>>/etc/sysctl.conf
#此参数可用的值为0,1,2
  #0表示当用户空间请求更多的内存时,内核尝试估算出可用的内存
  #1表示内核允许超量使用内存直到内存用完为止
  #2表示整个内存地址空间不能超过swap+(vm.overcommit_ratio)%的RAM值
sysctl-p

5. 修改redis配置文件(只列出大多数需要修改的项)

1
2
3
4
daemonize   yes          #redis以守护进程的方式运行,no表示不以守护进程的方式运行(会占用一个终端)
timeout 300             #客户端闲置多长时间后断开连接,默认为0关闭此功能
loglevel  verbose       #设置redis日志级别
logfile stdout          #设置日志文件的输出方式,如果以守护进程的方式运行redis并且日志输出设置为stdout,那么日志信息就输出到/dev/null里面去了

6. 启动redis并且制定redis的配置文件

1
redis-server /etc/redis/redis.conf

7. 登陆redis测试是否可用

1
2
3
4
redis-cli
  setname jack
  get name
  jack


PHPredis扩展安装

1. 下载扩展包

1
wget https://github.com/nicolasff/phpredis/archive/master.zip

2. 解压安装redis扩展

1
2
3
4
5
6
unzip master.zip
cd phpredis-master
phpize
./configure–with-php-config=/usr/bin/php-config
make
make install

3. 配置PHP的配置文件,添加redis扩展

1
2
vim /etc/php.ini
extension=”redis.so”

4. 重启httpd服务让扩展生效

1
/etc/init.d/httpdrestart

5. 查看PHPinfo中的redis扩展详细信息

wKioL1MmnmzSjHnCAAB7gaXA5Lk416.jpg


redis配置文件主要参数解析参考

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
daemonize  no              #redis进程是否以守护进程的方式运行,yes为是,no为否(不以守护进程的方式运行会占用一个终端)
pidfile /var/run/redis.pid #指定redis进程的PID文件存放位置
port 6379                  #redis进程的端口号
bind 127.0.0.1             #绑定的主机地址
timeout  300               #客户端闲置多长时间后关闭连接,默认此参数为0即关闭此功能
loglevel verbose           #redis日志级别,可用的级别有debug.verbose.notice.warning
logfile stdout             #log文件输出位置,如果进程以守护进程的方式运行,此处又将输出文件设置为stdout的话,就会将日志信息输出到/dev/null里面去了
databases 16               #设置数据库的数量,默认为0可以使用select <dbid>命令在连接上指定数据库id
save <seconds> <changes>   #指定在多少时间内刷新次数达到多少的时候会将数据同步到数据文件;
rdbcompression yes          #指定存储至本地数据库时是否压缩文件,默认为yes即启用存储;
dbfilename dump.db         #指定本地数据库文件名
dir ./                      #指定本地数据问就按存放位置;
slaveof <masterip> <masterport>    #指定当本机为slave服务时,设置master服务的IP地址及端口,在redis启动的时候他会自动跟master进行数据同步
masterauth <master-password>       #当master设置了密码保护时,slave服务连接master的密码;
requirepass footbared      #设置redis连接密码,如果配置了连接密码,客户端在连接redis是需要通过AUTH<password>命令提供密码,默认关闭
maxclients 128             #设置同一时间最大客户连接数,默认无限制;redis可以同时连接的客户端数为redis程序可以打开的最大文件描述符,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息
maxmemory<bytes>           #指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis新的vm机制,会把Key存放内存,Value会存放在swap区
appendonly no              #指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为no
appendfilename appendonly.aof      #指定跟新日志文件名默认为appendonly.aof
appendfsync everysec        #指定更新日志的条件,有三个可选参数no:表示等操作系统进行数据缓存同步到磁盘(快),always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全), everysec:表示每秒同步一次(折衷,默认值);


本文出自 “燕十三” 博客,请务必保留此出处http://yanshisan.blog.51cto.com/7879234/1377992

0 0
原创粉丝点击