Linux下Redis安装与PHP扩展(PHP7适用)

一,软件准备

#redis
wget http://download.redis.io/releases/redis-3.0.7.tar.gz

#phpredis 非php7使用 下载后文件名为:phpredis-develop
wget https://codeload.github.com/phpredis/phpredis/zip/develop

#phpredis PHP7专属 下载后文件名为:phpredis-php7
wget https://codeload.github.com/phpredis/phpredis/zip/php7

安装phpredis前,务必已经安装好autoconf。

二,安装配置Redis

安装方法非常简单,make后,redis直接安装在当前目录:

tar xzf redis-3.0.7.tar.gz
cd redis-3.0.7
make

开启redis前台服务测试:

src/redis-server

显示这个小盒子,前台服务即为成功开启,占用端口6379:

                _._
           _.-``__ ‘‘-._
      _.-``    `.  `_.  ‘‘-._           Redis 3.0.7 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ‘‘-._
 (    ‘      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|‘` _.-‘|     Port: 6379
 |    `-._   `._    /     _.-‘    |     PID: 23909
  `-._    `-._  `-./  _.-‘    _.-‘
 |`-._`-._    `-.__.-‘    _.-‘_.-‘|
 |    `-._`-._        _.-‘_.-‘    |           http://redis.io
  `-._    `-._`-.__.-‘_.-‘    _.-‘
 |`-._`-._    `-.__.-‘    _.-‘_.-‘|
 |    `-._`-._        _.-‘_.-‘    |
  `-._    `-._`-.__.-‘_.-‘    _.-‘
      `-._    `-.__.-‘    _.-‘
          `-._        _.-‘
              `-.__.-‘                                               

按Ctrl+C退出redis前台服务。

配置redis使用环境:

现在,我们新建目录 /usr/local/redis ,把./redis.conf,src/redis-server,src/redis-cli 三个文件复制到该目录下

mkdir /usr/local/redis
cp redis.conf src/redis-server src/redis-cli /usr/local/redis/cd /usr/local/redis

这三个文件:

redis.conf redis配置文件

redis-server redis服务端

redis-cli redis客户端

vi redis.conf修改配置,使redis服务在后台运行:

#redis.conf#daemonize yes

保存退出,./redis-server redis.conf 开启redis后台服务。

如果你修改redis.conf中的任何配置,需要关闭redis-server进程后,再./redis-server redis.conf 重新开启redis后台服务。

./redis-cli 开启redis客户端,你可以在其中输入任意redis命令。

Redis数据库

存入redis数据前必须选择数据库,redis数据库默认16个,下标0~15,默认使用第0个,存放数据前可以使用select N选择数据库。

Redis数据库在redis.conf中配置如下:

#redis.conf#
databases 16

你可以根据实际需要更改数据库个数,但一般不建议修改。

*持久化功能

redis(nosql产品)为了内部数据的安全考虑,会把本身的数据以文件形式保存到硬盘中一份,在服务器重启之后会自动把硬盘的数据恢复到内存(redis)的里边。

数据保存到硬盘的过程就称为“持久化”效果。

Redis快照持久化(snap shotting或称RDB持久化)配置:

该持久化默认开启,一次性把redis中全部的数据保存一份存储在硬盘中,如果数据非常多(10-20G)就不适合频繁进行该持久化操作。快照持久化会根据配置条件定期生成二进制备份文件,默认文件名dump.rdb。

redis.conf 中关于快照的配置:

#快照写入文件名
dbfilename dump.rdb

#快照保存目录
dir ./

#快照写入频率
save 900 1   #900 秒内如果超过 1 个 key 被修改,则发起快照保存
save 300 10   #300秒超过10个key被修改,发起快照
save 60 10000 #60秒超过10000个key被修改,发起快照
#以上三个备份频率需要同时存在:
#数据变化非常快的时候,就快点做备份(保证数据安全)
#数据变化慢的时候,就慢点做备份(节省服务器资源)

手动发起快照持久化:

快照持久化默认开启,并定时执行,你也可以通过redis-cli客户端使用bgsave命令手动发起。

./redis-cli bgsave

Redis AOF(append only file)持久化配置:

本质:把用户执行的每个“写”指令(添加、修改、删除)都备份到文件中,还原数据的时候就是执行具体写指令而已。

AOF默认关闭,默认保存文件名append.aof,默认每秒执行一次,具体参数如下

#开启/关闭AOF
appendonly yes

#保存文件名
appendfilename "appendonly.aof"

#AOF保存频率
# appendfsync always #每次收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用
appendfsync everysec #每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐
# appendfsync no     #完全依赖 os,性能最好,持久化没保证
#上面三种选项数据安全性及服务性能情况
#数据最安全      服务器性能低
#数据较安全      服务器性能中等
#数据不安全      服务器性能高(优良)

AOF策略设置为always或者everysec时,后台处理进程(后台保存或者AOF日志重写)会执行大量的I/O操作,在某些Linux配置中会阻止过长的fsync()请求。注意现在没有任何修复,即使fsync在另外一个线程进行处理。

为了减缓这个问题,可以设置下面这个参数no-appendfsync-on-rewrite:

#redis.conf#
no-appendfsync-on-rewrite yes

为AOF备份文件做优化压缩处理:

AOF记录用户的每个操作,但是有些操作例如对某个key的多个同类型操作是可以合并为一个,从而做到压缩文件大小的效果。例如多次incr一个整型key,可以直接合并为set key N。

压缩优化(AOF重写)命令:

./redis-cli bgrewriteaof

AOF自动重写:

当AOF文件增长到一定大小的时候Redis能够调用 BGREWRITEAOF 对日志文件进行重写,它是这样工作的:Redis会记住上次进行些日志后文件的大小(如果从开机以来还没进行过重写,那日子大小在开机的时候确定)基础大小会同现在的大小进行比较。如果现在的大小比基础大小大制定的百分比,重写功能将启动,同时需要指定一个最小大小用于AOF重写,这个用于阻止即使文件很小但是增长幅度很大也去重写AOF文件的情况,设置 percentage 为0就关闭这个重写特性。

#redis.conf#
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb 

手动持久化相关指令:

save (客户端命令行内)前台备份数据(快照保存)bgsave 异步保存数据到磁盘(快照保存)
lastsave 返回上次成功保存到磁盘的unix时间戳
shutdown  同步保存到服务器并关闭redis服务器
bgrewriteaof  当日志文件过长时优化AOF日志文件存储
redis 127.0.0.1:6379> SAVE #前台备份数据
./redis-cli  bgrewriteaof
./redis-cli  bgsave
./redis-cli -h 127.0.0.1 -p 6379 bgsave   #手动发起快照

数据恢复

如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 快照保存目录 并启动服务即可。要查看快照保存目录,可以查看redis.conf的dir配置。

*Redis主从模式

为了降低每个redis服务器的负载,可以多设置几个,并做主从模式,一个服务器负载“写”(添加、修改、删除)数据,其他服务器负载“读”数据,主服务器数据会“自动”同步给从服务器

Redis主从复制特点

1.master可以有多个slave

2.除了多个slave连接到master外,slave也可以连接到其他slave,形成网状结构

3.可以让slave做读请求,master做写操作 

 

配置主服务器:

(假定局域网IP为192.168.1.101)

#redis.conf#

#配置主服务器密码
requirepass admin123

#自定义端口
port 6379

配置从服务器:

#redis.conf#
#主服务器连接密码masterauth admin123

#自定义端口port 6380
#设置成为192.168.1.101的从服务器
slaveof 192.168.1.101 6379

#取消从服务器只读
slave-read-only no

重新开启redis-server 服务,则从服务器设置成功。

Redis推荐部署方式:

*关于Redis详细配置信息,可以参考以下博客:

1Redis配置文件详解 2Redis配置文件详解

三,安装PHP扩展

生成redis.so:

unzip phpredis-Version

cd phpredis-Version

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config

make && make install

将extension=redis.so加入到php.ini

重启服务器,查看phpinfo();

如果是使用php-fpm,则需要重启php-fpm:

ps aux|grep php-fpm #查看fpm进程号

kill -USR2 fpm进程号 #平滑重启php-fpm

phpinfo():

显示即OK。

四,测试使用

新建test_redis.php

 1 <?php
 2
 3 //连接本地Redis服务
 4 $redis=new Redis();
 5 $redis->connect(‘localhost‘,‘6379‘);
 6 //查看服务是否运行
 7 $redis->ping();
 8
 9 //选择数据库
10 $redis->select(5);
11
12 //设置数据
13 $redis->set(‘school‘,‘WuRuan‘);
14 //设置多个数据
15 $redis->mset(array(‘name‘=>‘jack‘,‘age‘=>24,‘height‘=>‘1.78‘));
16
17 //存储数据到列表中
18 $redis->lpush("tutorial-list", "Redis");
19 $redis->lpush("tutorial-list", "Mongodb");
20 $redis->lpush("tutorial-list", "Mysql");
21
22 //获取存储数据并输出
23 echo $redis->get(‘school‘);
24
25 echo ‘<br/>‘;
26
27 $gets=$redis->mget(array(‘name‘,‘age‘,‘height‘));
28 print_r($gets);
29
30 $tl=$redis->lrange("tutorial-list", 0 ,5);
31 print_r($tl);

显示:

*语法参考文档,phpredis中文手册

五(附),Redis性能测试及常用命令

Redis性能测试

Redis还自带一个redis-benchmark性能测试工具,我们将其复制到/usr/local/redis目录下

cp /usr/local/src/redis-3.0.7/src/redis-benchmark /usr/local/redis/

redis-benchmark操作命令如下:

redis-benchmark [option] [option value]

redis 性能测试工具可选参数如下所示:

实例

1,我们同时执行10000个请求来检测redis性能:

./redis-benchmark -n 10000
====== PING_INLINE ======
  10000 requests completed in 0.31 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

74.11% <= 1 milliseconds
95.93% <= 2 milliseconds
98.82% <= 3 milliseconds
99.30% <= 6 milliseconds
99.33% <= 7 milliseconds
99.40% <= 9 milliseconds
99.45% <= 10 milliseconds
99.51% <= 13 milliseconds
99.60% <= 14 milliseconds
99.64% <= 18 milliseconds
99.82% <= 29 milliseconds
100.00% <= 29 milliseconds
31746.03 requests per secon
....更多显示参数不列举

2,使用了多个参数来测试 redis 性能:

#以下实例中主机为 127.0.0.1,端口号为 6379,执行的命令为 set,lpush,请求数为 10000,通过 -q 参数让结果只显示每秒执行的请求数。
./redis-benchmark -h 127.0.0.1 -p 6379 -t set,lpush -n 10000 -q
SET: 38314.18 requests per second
LPUSH: 36363.64 requests per second

Redis常用命令

*出自传播智客

*Redis教程:http://www.runoob.com/redis/redis-tutorial.htmlhttp://www.jb51.net/article/56448.htm

时间: 2024-10-13 20:45:16

Linux下Redis安装与PHP扩展(PHP7适用)的相关文章

Redis(二)linux下redis安装

上篇讲解了redis在windows下的安装,接下来看看在linux下如何安装redis(纯菜鸟入门级别)? (1)redis的下载及编译 这里,首先进入存放文件目录(我的云服务器的是:cd /jelly/redis/)  wget http://download.redis.io/releases/redis-3.0.0.tar.gz(下载) tar xzf redis-3.0.0.tar.gz(解压) cd /src make(编译) (2)启动redis服务 mv redis3.0.0 r

Linux下redis安装与使用

?????redis官网地址:http://www.redis.io/ ???? 最新版本:2.8.3 ???? 在Linux下安装Redis非常简单,具体步骤如下(官网有说明): ???? 1.下载源码,解压缩后编译源码. $ wget http://download.redis.io/releases/redis-2.8.3.tar.gz $ tar xzf redis-2.8.3.tar.gz $ cd redis-2.8.3 $ make ???? 2.编译完成后,在Src目录下,有四个

linux下redis安装

Redis的安装: tar zxvf redis-2.6.4.tar.gz cd redis-2.6.4 直接make就行了 make 执行完后,会在当前目录中的src目录中生成相应的执行文件,如:redis-server redis-cli等:我们在/usr/local/目录中创建redis位置目录和相应的数据存储目录.配置文件目录等: mkdir /usr/local/redis/{conf,run,db} –pv cd /root/redis-2.8.17 cp redis.conf /u

linux下memcached安装及php扩展安装配置

需要安装的软件包括 libevent  安装 Memcached 服务器所依赖的软件包 libmemcached  是一个 memcached 的库 memcached  Memcached 服务器软件包 memcached  PHP开启 Memcached 扩展的软件包 下载所需软件包并解包 安装 libevent cd libevent-2.0.21-stable/ ./configure --prefix=/usr/local/libevent/ make && make insta

Linux 下 Redis 安装详解

redis作为NoSQL数据库的一种应用,响应速度和命中率上还是比较高效的.项目中需要用集中式可横向扩展的缓存框架,做了一点调研,即便redis.memcached存在效率上的差异(具体比较参考http://timyang.net/data/mcdb-tt-redis/),但其实都能满足目前项目的需求:但是redis还是比较风骚的,支持链表和集合操作,支持正则表达式查找key,目前项目缓存的结果大多是链表,如果链表新增或者修改数据的话,redis就体现出了极大的优势(memcached只能重新加

linux下redis安装和C++连接

1.下载安装包: wget http://redis.googlecode.com/files/redis-2.6.13.tar.gz 2.解压: tar axvf redis-2.6.13.tar.gz 3.进入文件夹:cd redis-2.6.13/ 4.编译:make 5.编译安装: make install 6.进入源码文件夹: cd src 7.编译安装: sudo make install 8.回到上一级目录: cd .. 9.打开redis.conf文件: vim redis.co

[一]linux下redis安装

一.redis是什么 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集合) 更多的介绍就不copy了,直接看官网https://redis.io/topics/introduction 二.yum安装redis 1.安装前环境说明,系统基于CentOS-6.7-x86_64-minimal.iso 2.安装epel源 [[email protected] ~]#

Linux下Redis安装使用教程

https://redis.io/download 原文地址:https://www.cnblogs.com/yehuisir/p/10586603.html

Linux下Redis的部署和启动笔记

Linux下Redis的部署和启动 下载安装介质 Redis官网地址:http://www.redis.io/目前最新版本是redis-3.0.3. 可以访问 http://download.redis.io/releases/redis-3.0.3.tar.gz 下载后使用SCP上传到服务器, 或者直接下载: wget http://download.redis.io/releases/redis-3.0.3.tar.gz 解压及编译 [email protected]:/data$ tar