Linux下编译redis和phpredis的方法


Posted in PHP onApril 07, 2016

本文讲述了Linux下编译redis和phpredis的方法。分享给大家供大家参考,具体如下:

1、准备工作

下载软件:本站下载地址。
操作系统:CentOS 5.5
redis 版本:redis-2.6.9

2、编译安装

tar zxvf redis-2.6.9.tar.gz //解压 
cd redis-2.6.9 
make  //编译

如果出现如下错误:

zmalloc.o: In function `zmalloc_used_memory':
/data/redis-2.6.9/src/zmalloc.c:223: undefined reference to `__sync_add_and_fetch_4'
collect2: ld returned 1 exit status
make[1]: *** [redis-server] Error 1
make[1]: Leaving directory `/data/redis-2.6.9/src'
make: *** [all] Error 2

解决方法:

make CFLAGS="-march=i686"

当看见“Hint: To run 'make test' is a good idea ;)” 说明编译成功。

make install  //安装

说明:其实 make install 就是:

cp -p redis-server /usr/local/bin
cp -p redis-benchmark /usr/local/bin
cp -p redis-cli /usr/local/bin
cp -p redis-check-dump /usr/local/bin
cp -p redis-check-aof /usr/local/bin

这样,redis 就安装成功了。

接下来就是启动Redis了, 上面编译后生成的那些可执行文件拷贝到了/usr/local/bin目录下面, 他们的作用分别是:

redis-server:Redis服务器的daemon启动程序
redis-cli:Redis命令行操作工具。当然,你也可以用 telnet 根据其纯文本协议来操作
redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能

启动 Redis 进程只需要执行这个 /usr/local/bin/redis-server /path-to/redis.conf

启动的时候后面要跟上 redis 的配置文件, 这样Redis就顺利启动了.

3、启动 redis 会出现的问题

Warning: 32 bit instance detected but no memory limit set. Setting 3 GB maxmemory limit with 'noeviction' policy now.

解决方法:修改配置文件 redis.conf  将 maxmemory 设置为 maxmemory 1024000000 #分配256M内存

WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.

解决方法:警告:过量使用内存设置为0!在低内存环境下,后台保存可能失败。为了修正这个问题,请在/etc/sysctl.conf 添加一项 'vm.overcommit_memory = 1' ,然后重启(或者运行命令'sysctl vm.overcommit_memory=1' )使其生效。

当启动的时候没有任何信息,表明启动成功。也可以使用 "netstat -tnl" 查看6379端口是否启动。

4、开启和关闭 redis

redis-server /usr/local/redis-2.6.9/redis.conf 开启,注:需要指定 redis 的配置文件

pkill redis-server 停止 redis
redis-cli shutdown 停止 redis

5、redis.conf 的参数信息

关于redis及其参数信息可参考本站《Redis基本知识、安装、部署、配置笔记》

6、编译 phpredis

unzip phpredis-master.zip
cd phpredis-master
/usr/local/php/bin/phpize
./configure ?with-php-config=/usr/local/php/bin/php-config
make && make install

修改 php.ini 文件。加载 redis.so 模块,重启 Apache !

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
一个多文件上传的例子(原创)
Oct 09 PHP
MySQL修改密码方法总结
Mar 25 PHP
PHP循环函数使用介绍之PHP基础入门教程
Sep 21 PHP
PHP实现自动登入google play下载app report的方法
Sep 23 PHP
php实现的日历程序
Jun 18 PHP
PHP程序员的技术成长规划
Mar 25 PHP
浅谈PHP链表数据结构(单链表)
Jun 08 PHP
php foreach如何跳出两层循环(详解)
Nov 05 PHP
静态html文件执行php语句的方法(推荐)
Nov 21 PHP
Yii 2.0实现联表查询加搜索分页的方法示例
Aug 02 PHP
PHP代码加密的方法总结
Mar 13 PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 PHP
php 实现进制相互转换
Apr 07 #PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
Apr 07 #PHP
php制作简单模版引擎
Apr 07 #PHP
thinkphp框架下实现登录、注册、找回密码功能
Apr 06 #PHP
非常有用的9个PHP代码片段
Apr 06 #PHP
10个对初学者非常有用的PHP技巧
Apr 06 #PHP
yii2.0实现pathinfo的形式访问的配置方法
Apr 06 #PHP
You might like
PHP5 面向对象(学习记录)
2009/12/02 PHP
PHP保存带BOM文件的方法
2015/02/12 PHP
基于Swoole实现PHP与websocket聊天室
2016/08/03 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
菜单效果
2006/10/14 Javascript
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
jquery中实现简单的tabs插件功能的代码
2011/03/02 Javascript
javascript向后台传送相同属性的参数即数组参数
2014/02/17 Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
2014/05/04 Javascript
手机端网页点击链接触发自动拨打或保存电话的示例代码
2014/08/15 Javascript
Node.js 的异步 IO 性能探讨
2014/10/08 Javascript
JS动态创建DOM元素的方法
2015/06/09 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
2015/07/17 Javascript
AngularJS表格添加序号的方法
2017/03/03 Javascript
Vue.js 60分钟快速入门教程
2017/03/28 Javascript
AngularJS中$http的交互问题
2017/03/29 Javascript
php 修改密码实现代码
2017/05/24 Javascript
Angular实现点击按钮控制隐藏和显示功能示例
2017/12/29 Javascript
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
angular-tree-component的使用详解
2018/07/30 Javascript
微信小程序 image组件遇到的问题
2019/05/28 Javascript
JS面向对象之多选框实现
2020/01/17 Javascript
小程序选项卡以及swiper套用(跨页面)
2020/06/19 Javascript
[01:08]DOTA2次级职业联赛 - Wings 战队宣传片
2014/12/01 DOTA
python传递参数方式小结
2015/04/17 Python
python爬虫之BeautifulSoup 使用select方法详解
2017/10/23 Python
读取json格式为DataFrame(可转为.csv)的实例讲解
2018/06/05 Python
python使用PIL模块获取图片像素点的方法
2019/01/08 Python
Python关于拓扑排序知识点讲解
2021/01/04 Python
解决html5中的video标签ios系统中无法播放使用的问题
2020/08/10 HTML / CSS
美国糖果店:Sugarfina
2019/02/21 全球购物
新媒传信软件测试面试题
2013/02/24 面试题
公司中秋节活动方案
2014/02/12 职场文书
浅谈Golang 嵌套 interface 的赋值问题
2021/04/29 Golang
SpringBoot详解整合Redis缓存方法
2022/07/15 Java/Android
Nginx如何获取自定义请求header头和URL参数详解
2022/07/23 Servers