安装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 main
    linux-vdso.so.1 =>  (0x00007ffee1ddb000)
    libhiredis.so.0.13 => not found
    libc.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 main
    linux-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库已安装完毕。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值