本文主要是介绍安装Redis-4.0.1以及hiredis库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
安装Redis-4.0.1以及hiredis库
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
install Redis-4.0.1
一、新建账户
[root@localhost ~]# useradd -d /home/redis -m redis
[root@localhost ~]# passwd redis
[root@localhost ~]# su - redis
[redis@localhost ~]$
二、上传安装包&&解压缩
[redis@localhost ~]$ ll
total 1672
-rw-r--r--. 1 redis redis 1711660 Mar 4 17:11 redis-4.0.1.tar.gz
[redis@localhost ~]$ tar zxf redis-4.0.1.tar.gz
[redis@localhost ~]$ ll
total 1676
drwxrwxr-x. 6 redis redis 4096 Jul 24 2017 redis-4.0.1
-rw-r--r--. 1 redis redis 1711660 Mar 4 17:11 redis-4.0.1.tar.gz
三、编译源文件
[redis@localhost ~]$ cd redis-4.0.1/src/
[redis@localhost src]$ make
这时可看到redis-cli、redis-server等可执行文件已存在于src目录下。
[redis@localhost src]$ ll redis-cli
-rwxrwxr-x. 1 redis redis 5730574 Mar 12 13:22 redis-cli
[redis@localhost src]$ ll redis-server
-rwxrwxr-x. 1 redis redis 8309843 Mar 12 13:22 redis-server
PS.
关于make编译源文件
通常开源代码可以在src下通过以下两条命令来完成编译&&安装:
make
make install
其中:
1)make是使用src下的makefile来完成对源文件的编译,生成可执行文件(或动态库)到当前(src)目录下;
2)make install是将src下的可执行文件copy到/usr/local、/usr/bin等目录中;
明确下,所谓的“安装”,通常是binary可执行文件的copy过程。
四、创建Redis目录结构
[redis@localhost ~]$ mkdir redis
[redis@localhost ~]$ mkdir redis/bin
[redis@localhost ~]$ mkdir redis/etc
[redis@localhost ~]$ mkdir redis/lib
[redis@localhost ~]$ mkdir redis/log
[redis@localhost ~]$ mkdir redis/include
[redis@localhost ~]$ mkdir redis/redis-run
五、安装Redis以及配置
安装Redis && Copy配置文件
[redis@localhost ~]$ cp redis-4.0.1/src/redis-cli redis/bin
[redis@localhost ~]$ cp redis-4.0.1/src/redis-server redis/bin[redis@localhost ~]$ cp redis-4.0.1/redis.conf redis/etc/
配置Redis(在redis.conf末尾添加配置项key-value)
[redis@localhost ~]$ cd redis/etc/
[redis@localhost etc]$ echo "port 12001" >> redis.conf
[redis@localhost etc]$ echo "dir $HOME/redis/redis-run" >> redis.conf
[redis@localhost etc]$ echo "logfile $HOME/redis/log/redis.log" >> redis.conf
[redis@localhost etc]$ echo "pidfile $HOME/redis/redis-run/redis.pid" >> redis.conf
[redis@localhost etc]$ echo "loglevel verbose" >> redis.conf
将redis可执行文件加入到PATH中:
[redis@localhost ~]$ echo 'export PATH=$PATH:$HOME/redis/bin' >> ~/.bash_profile
退出当前终端,重新登陆,使.bash_profile生效。
[redis@localhost ~]$ which redis-server
~/redis/bin/redis-server
六、启动Redis
执行以下命令:
[redis@localhost ~]$ redis-server $HOME/redis/etc/redis.conf &
[1] 7789
Check:
[root@localhost ~]# netstat -lntp | grep 12001
tcp 0 0 127.0.0.1:12001 0.0.0.0:* LISTEN 7789/redis-server 1
尝试使用redis-cli去接入服务端:
[redis@localhost ~]$ redis-cli -h 127.0.0.1 -p 12001
127.0.0.1:12001> quit
查看Redis版本:
[redis@localhost ~]$ redis-cli --version
redis-cli 4.0.1
[redis@localhost ~]$ redis-server --version
Redis server v=4.0.1 sha=00000000:0 malloc=jemalloc-4.0.3 bits=64 build=bd34ae9555e58482
至此,Redis-4.0.1已安装完毕并启动成功。
install hiredis lib
一、编译生成hiredis库
[redis@localhost ~]$ cd redis-4.0.1/deps/hiredis && make
cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb net.c
cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb hiredis.c
cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb sds.c
cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb async.c
cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb read.c
cc -shared -Wl,-soname,libhiredis.so.0.13 -o libhiredis.so net.o hiredis.o sds.o async.o read.o
ar rcs libhiredis.a net.o hiredis.o sds.o async.o read.o
cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb test.c
cc -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb -o hiredis-test test.o libhiredis.a
Generating hiredis.pc for pkgconfig...
Check:
[redis@localhost hiredis]$ ll libhiredis.*
-rw-rw-r--. 1 redis redis 332022 Mar 12 13:52 libhiredis.a
-rwxrwxr-x. 1 redis redis 227229 Mar 12 13:52 libhiredis.so
二、安装hiredis
Copy 头文件:
[redis@localhost ~]$ cp redis-4.0.1/deps/hiredis/*.h $HOME/redis/include
设置gcc编译器头文件查找路径:
[redis@localhost ~]$ echo 'export C_INCLUDE_PATH=$C_INCLUDE_PATH:$HOME/redis/include' >> $HOME/.bash_profile
编译器在缺失头文件时,会额外地从C_INCLUDE_PATH包含的目录中查找是否有缺失的头文件。
注:
与C_INCLUDE_PATH相关的,还有CPLUS_INCLUDE_PATH。
Copy动态、静态库:
[redis@localhost ~]$ cp redis-4.0.1/deps/hiredis/libhiredis.* $HOME/redis/lib
设置LD_LIBRARY_PATH:
[redis@localhost ~]$ echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/redis/lib' >> $HOME/.bash_profile
在进程启动时,ld从/usr/lib等默认的地方找不到hiredis库时,还会去LD_LIBRARY_PATH包含的目录中搜索动态库。
退出当前终端,重新登陆,使得相关环境变量生效
[redis@localhost ~]$ echo $C_INCLUDE_PATH
:/home/redis/redis/include:/home/redis/redis/include
[redis@localhost ~]$ echo $LD_LIBRARY_PATH
:/home/redis/redis/lib
写个小程序,编译下看看?
#include <stdio.h>
#include <stdlib.h>
#include <hiredis.h>int main()
{return 0;
}
[redis@localhost ~]$ gcc -o main main.c -lhiredis -L$HOME/redis/lib
[redis@localhost ~]$ ldd mainlinux-vdso.so.1 => (0x00007ffee1ddb000)libhiredis.so.0.13 => not foundlibc.so.6 => /lib64/libc.so.6 (0x0000003f8c000000)/lib64/ld-linux-x86-64.so.2 (0x0000003f8b800000)
not found?
好吧,做个软链接。
[redis@localhost ~]$ ln -s $HOME/redis/lib/libhiredis.so $HOME/redis/lib/libhiredis.so.0.13
Check:
[redis@localhost ~]$ ldd mainlinux-vdso.so.1 => (0x00007fff3f1e2000)libhiredis.so.0.13 => /home/redis/redis/lib/libhiredis.so.0.13 (0x00007feb15502000)libc.so.6 => /lib64/libc.so.6 (0x0000003f8c000000)/lib64/ld-linux-x86-64.so.2 (0x0000003f8b800000)
[redis@localhost ~]$ ./main
至此,Redis的C API:hiredis库已安装完毕。
这篇关于安装Redis-4.0.1以及hiredis库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!