一、Linux Centos 7.0版本下的安装及配置
通过源来安装,此次安装的版本为 redis 5.0 的,要通过其他源进行安装,首先安装 scl 源
yum install centos-release-scl-rh
再安装 redis
yum install rh-redis5-redis
然后创建符号链接(软链接),默认安装路径不方便访问,通过软链接更方便访问
1)针对可执⾏程序设置符号链接
cd /usr/bin
ln -s /opt/rh/rh-redis5/root/usr/bin/redis-server ./redis-server
ln -s /opt/rh/rh-redis5/root/usr/bin/redis-sentinel ./redis-sentinel
ln -s /opt/rh/rh-redis5/root/usr/bin/redis-cli ./redis-cli
2)针对配置文件设置符号链接
cd /etc/
ln -s /etc/opt/rh/rh-redis5/ ./redis
再来是修改配置文件
首先进入目录 /etc/redis
cd /etc/redis
如下图红框内的是 redis 的配置文件
可以使用 vim 进入修改
vim redis.conf
接着按如下步骤修改
1)设置 ip 地址
表示监听任何 ip
2)关闭保护模式
改为 no 即可
3)启动守护进程
4)设置工作目录(非必须)
主要用于更方便的访问工作目录,嫌麻烦可以用默认的
先创建工作目录
mkdir -p /var/lib/redis
再在配置文件中设置工作目录
5)设置日志目录(非必须)
主要用于更方便的查看日志,嫌麻烦可以用默认的
先创建日志目录
mkdir -p /var/log/redis/
再在配置文件中设置日志目录
至此安装并配置 Redis 完毕,最后启动 redis 即可
redis-server /etc/redis/redis.conf
这是通过配置文件直接启动,通过指令
netstat -anp | head -2 && netstat -anp | grep redis
可以看到运行的 redis 服务
redis 的端口为 6379,接着可以在 Linux 下直接启动 redis 客户端
redis-cli --raw
如下图
来测试一下是否成功连接服务器,输入 ping,如果返回 PONG 就表示连接成功
ps:启动 redis 客户端时可以加上 --raw,加上的作用时输出中文时显示中文
二、通过C++访问Redis
首先在 github 上搜索 redis-plus-plus,链接直达:redis-plus-plus
这是大佬写好的库,可以直接调用其接口来访问自己的 redis 服务器。
准备工作:
1)因为我的Linux 版本是 Centos 7.0,而自带的 cmake 版本较低,所以需要先安装 cmake3
yum install cmake3
2)因为 redis-plus-plus 是基于 hiredis 实现的,因此需要先安装 hiredis
git clone https://github.com/redis/hiredis.git
cd hiredis
make
make install
成功安装后会获得如下动静态库
3)接着安装 redis-plus-plus
git clone https://github.com/sewenew/redis-plus-plus.git
cd redis-plus-plus
mkdir build
cd build
cmake3 ..
make
make install
成功安装后会获得如下动静态库
至此安装完成,在通过 C++ 访问 redis 时,就可以调用 redis-plus-plus 提供的相关 API 了,别忘了包含对应头文件
#include <sw/redis++/redis++.h>
一个简单的使用例子:
#include <iostream>
#include <sw/redis++/redis++.h>
using namespace std;
int main()
{
sw::redis::Redis redis("tcp://127.0.0.1:6379"); //连接到 redis 服务器
redis.flushall();
string echo = redis.ping();
cout << echo << endl;
redis.set("k1", "v1");
redis.set("k2", "v2");
redis.set("k3", "v3");
return 0;
}
使用 g++ 编译时别忘了指明相关库的路径,比如:
.PHONY:test
test:test.cpp
g++ -o $@ $^ /usr/local/lib64/libredis++.a /usr/local/lib/libhiredis.a -std=c++17
执行结果:
redis 数据库中也确实存储了对应的键值对
如需了解更多 API 请访问 redis-plus-plus 项目的 API Reference