Home  >  Article  >  Backend Development  >  Methods to compile redis and phpredis under Linux_php tips

Methods to compile redis and phpredis under Linux_php tips

WBOY
WBOYOriginal
2016-05-16 19:54:332863browse

This article describes how to compile redis and phpredis under Linux. Share it with everyone for your reference, the details are as follows:

1. Preparation

Download software: Download address of this website .
Operating system: CentOS 5.5
redis version: redis-2.6.9

2. Compile and install

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

If the following error occurs:

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

Solution:

make CFLAGS="-march=i686" 

When you see "Hint: To run 'make test' is a good idea ;)" it means the compilation is successful.

make install  //安装 

Note: In fact, make install is:

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

In this way, redis is installed successfully.

The next step is to start Redis. The executable files generated after compilation above are copied to the /usr/local/bin directory. Their functions are:

redis-server: daemon startup program for Redis server
redis-cli: Redis command line operation tool. Of course, you can also use telnet to operate according to its plain text protocol
redis-benchmark: Redis performance testing tool, test the read and write performance of Redis under your system and your configuration

To start the Redis process, you only need to execute this /usr/local/bin/redis-server /path-to/redis.conf

When starting, you must follow the redis configuration file, so that Redis will start smoothly.

3. Problems that may occur when starting redis

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

Solution: Modify the configuration file redis.conf and set maxmemory to maxmemory 1024000000 #Allocate 256M memory

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.

Workaround: Warning: Overcommitted memory set to 0! In low memory environments, background saves may fail. To fix this, add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and reboot (or run the command 'sysctl vm.overcommit_memory=1' ) for it to take effect.

There is no message when starting, indicating that the startup is successful. You can also use "netstat -tnl" to check whether port 6379 is started.

4. Open and close redis

Redis-server /usr/local/redis-2.6.9/redis.conf is enabled. Note: the redis configuration file needs to be specified

pkill redis-server stop redis
redis-cli shutdown stop redis

5. Parameter information of redis.conf

For information about redis and its parameters, please refer to this site's "Redis basic knowledge, installation, deployment, configuration notes "

6. Compile 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

Modify the php.ini file. Load the redis.so module and restart Apache!

Readers who are interested in more PHP-related content can check out the special topics on this site: "Summary of php curl usage", "Summary of PHP operations and operator usage", "Summary of PHP network programming skills", "Introduction to PHP basic syntax tutorial", "Summary of PHP operating office document skills (including word, excel, access, ppt)" , "php date and time usage summary", "php object-oriented programming introductory tutorial", "php string (string) usage summary", " php mysql database operation introductory tutorial" and "php common database operation skills summary"

I hope this article will be helpful to everyone in PHP programming.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn