安装Redis-4.0.1以及hiredis库

2024-03-25 16:58
文章标签 安装 redis 4.0 hiredis

本文主要是介绍安装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库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/845646

相关文章

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

Redis的持久化之RDB和AOF机制详解

《Redis的持久化之RDB和AOF机制详解》:本文主要介绍Redis的持久化之RDB和AOF机制,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述RDB(Redis Database)核心原理触发方式手动触发自动触发AOF(Append-Only File)核

Redis分片集群、数据读写规则问题小结

《Redis分片集群、数据读写规则问题小结》本文介绍了Redis分片集群的原理,通过数据分片和哈希槽机制解决单机内存限制与写瓶颈问题,实现分布式存储和高并发处理,但存在通信开销大、维护复杂及对事务支持... 目录一、分片集群解android决的问题二、分片集群图解 分片集群特征如何解决的上述问题?(与哨兵模

SpringBoot连接Redis集群教程

《SpringBoot连接Redis集群教程》:本文主要介绍SpringBoot连接Redis集群教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 依赖2. 修改配置文件3. 创建RedisClusterConfig4. 测试总结1. 依赖 <de

SpringBoot+Redis防止接口重复提交问题

《SpringBoot+Redis防止接口重复提交问题》:本文主要介绍SpringBoot+Redis防止接口重复提交问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录前言实现思路代码示例测试总结前言在项目的使用使用过程中,经常会出现某些操作在短时间内频繁提交。例

Redis 配置文件使用建议redis.conf 从入门到实战

《Redis配置文件使用建议redis.conf从入门到实战》Redis配置方式包括配置文件、命令行参数、运行时CONFIG命令,支持动态修改参数及持久化,常用项涉及端口、绑定、内存策略等,版本8... 目录一、Redis.conf 是什么?二、命令行方式传参(适用于测试)三、运行时动态修改配置(不重启服务

浅析如何保证MySQL与Redis数据一致性

《浅析如何保证MySQL与Redis数据一致性》在互联网应用中,MySQL作为持久化存储引擎,Redis作为高性能缓存层,两者的组合能有效提升系统性能,下面我们来看看如何保证两者的数据一致性吧... 目录一、数据不一致性的根源1.1 典型不一致场景1.2 关键矛盾点二、一致性保障策略2.1 基础策略:更新数

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的