当前位置: 首页 > 工具软件 > RedisPlus > 使用案例 >

redis-plus-plus使用说明

松思源
2023-12-01

概述

Redis-plus-plus是一个基于hiRedis的Redis客户端,是用C++ 11 / C++ 17编写。

特性

  • 支持大部分的Redis命令

  • 连接池

  • Redis脚本

  • 线程安全除非另有说明

  • 发布订阅

  • 管道

  • 事务

  • 集群

  • 哨兵

  • 类似STL的接口

  • 通用命令行接口

安装

安装hiRedis

因为redis-plus-plu是基于hiRedis的,所以必须先安装hiRedis。支持的hiRedis最低版本是v0.12.1,建议最好安装最新版本的hiRedis

git clone https://github.com/redis/hiredis.git
​
cd hiredis
​
make
​
make install

在默认情况下,hiRedis是安装在/usr/local目录。如果想要安装hiRedis在其他目录,需要使用以下命令来指定安装路径

make PREFIX=/non/default/path
​
make PREFIX=/non/default/path install

Install redis-plus-plus

redis-plus-plus 是使用 CMAKE.编译

git clone https://github.com/sewenew/redis-plus-plus.git
​
cd redis-plus-plus
​
mkdir compile
​
cd compile
​
cmake -DCMAKE_BUILD_TYPE=Release ..
​
make
​
make install
​
cd ..

如果hiRedis是安装在非默认路径,需要使用CMAKE_PREFIX_PATH来指定hiRedis的安装路径。默认情况下 redis-plus-plus是安装在/usr/local目录,可以使用CMAKE_INSTALL_PREFIX来指定安装在其它路径

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/path/to/hiredis -DCMAKE_INSTALL_PREFIX=/path/to/install/redis-plus-plus ..

默认情况下redis-plus-plus是使用C++11标准,如果想要使用 std::string_viewstd::optional 特性,可以设置使用C++17标准,这需要在cmake文件中指定编译宏:-DREDIS_PLUS_PLUS_CXX_STANDARD=17

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/path/to/hiredis -DCMAKE_INSTALL_PREFIX=/path/to/install/redis-plus-plus -DREDIS_PLUS_PLUS_CXX_STANDARD=17 ..

编译redis-plus-plus的时候也会编译一个测试程序,如果不想编译测试程序的话需要在cmake中添加一个选项:-DREDIS_PLUS_PLUS_BUILD_TEST=OFF

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/path/to/hiredis -DCMAKE_INSTALL_PREFIX=/path/to/install/redis-plus-plus -DREDIS_PLUS_PLUS_BUILD_TEST=OFF ..

运行测试 (可选)

redis-plus-plus已经通过以下编译器进行了全面测试:

gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1)
gcc version 6.5.0 20181026 (Ubuntu 6.5.0-2ubuntu1~18.04)
gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
gcc version 8.3.0 (Ubuntu 8.3.0-6ubuntu1~18.04.1)
gcc version 9.2.1 20191008 (Ubuntu 9.2.1-9ubuntu2)
clang version 3.9.1-19ubuntu1 (tags/RELEASE_391/rc2)
clang version 4.0.1-10 (tags/RELEASE_401/final)
clang version 5.0.1-4 (tags/RELEASE_501/final)
clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
clang version 7.0.0-3~ubuntu0.18.04.1 (tags/RELEASE_700/final)
clang version 8.0.1-3build1 (tags/RELEASE_801/final)
Apple clang version 11.0.0 (clang-1100.0.33.12)

如果已默认方式构建redis-plus-plus,在/test/目录下会有一个测试程序。

运行测试程序需要先运行一个Redis服务器。由于测试程序要向服务器和集群发送大部分Redis命令,因此需要Redis版本至少是5.0,否则测试可能不通过。比如用Redis4.0来测试的话,ZPOPMAX(5.0才添加)测试用例就会失败。如果要使用其他Redis版本运行测试,必须从Redis plus/test/src/sw/Redis++/目录中的测试源码中注释掉Redis不支持的命令

注意:最新版本的Redis只是运行测试的一个要求。事实上,可以将redis plus与任何版本的redis一起使用,例如redis 2.0、redis 3.0、redis 4.0、redis 5.0。

切勿在生产环境中运行测试程序,因为测试程序读取或写入的密钥可能与应用程序冲突。

要同时使用Redis和Redis Cluster运行测试,可以使用以下命令运行测试程序:

./compile/test/test_redis++ -h host -p port -a auth -n cluster_node -c cluster_port
  • hostport 是Redis服务器的主机和端口号。

  • cluster_nodecluster_port是Redis群集的主机和端口号。您只需设置集群中单个节点的主机和端口号,redis plus将自动查找其他节点。

  • auth是Redis实例和Redis集群的密码。Redis实例和Redis群集必须配置相同的密码。如果没有配置密码,请不要设置此选项。

如果只想使用Redis运行测试,则只需指定hostportauth选项:

./compile/test/test_redis++ -h host -p port -a auth

类似地,如果您只想使用Redis Cluster运行测试,只需指定Cluster\u nodeCluster\u portauth选项:

./compile/test/test_redis++ -a auth -n cluster_node -c cluster_port

测试程序将在多线程环境中测试运行redis plus,并且此测试将花费很长时间。如果您想跳过它(不推荐),只需在test/src/sw/redis++/test_main.cpp文件中注释掉以下几行即可。

sw::redis::test::ThreadsTest threads_test(opts, cluster_node_opts);
threads_test.run();

如果所有测试均已通过,测试程序将打印以下消息:

Pass all tests

否则,它将打印错误消息。

 类似资料: