欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用redis-plus-plus庫連接redis的實現(xiàn)方法

 更新時間:2025年02月06日 11:33:52   作者:冧軒在努力  
本文主要介紹了使用redis-plus-plus庫連接redis的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、安裝redis-plus-plus

C++ 操作 redis 的庫有很多. 此處使? redis-plus-plus,因為這個庫的功能強?, 使?簡單
下載地址

1.1安裝hiredis

redis-plus-plus 是基于 hiredis 實現(xiàn)的 ,hiredis 是?個 C 語?實現(xiàn)的 redis 客?端 ,因此需要先安裝 hiredis. 直接使?包管理器安裝即可

Ubuntu:

sudo apt install libhiredis-dev

Centos:

sudo yum install hiredis-devel.x86_64

1.2編譯安裝redis-plus-plus

通過指令下載 redis-plus-plus 源碼

git clone https://github.com/sewenew/redis-plus-plus.git

如果連接不上可以點擊上面的下載地址,進行下載壓縮包:

  • 點擊Code
  • 點擊Download ZIP下載

在這里插入圖片描述

將下載的壓縮包解壓一下:

unzip 文件名

Ubuntu可直接使用cmake構(gòu)建

#進入解壓后獲取到的文件夾
cd redis-plus-plus
#創(chuàng)建build文件夾且進入
mkdir build && cd build
#編譯生成makefile文件
cmake ..
#編譯源代碼
make
#安裝
sudo make install

如果是Centos,需要注意一下cmake版本,系統(tǒng)自帶的cmake版本較低,需要安裝cmake3

sudo yum install cmake3 -y

然后使? cmake3 構(gòu)建項? ,構(gòu)建步驟和上面的構(gòu)建步驟一致

安裝成功后,會在 /usr/local/include/ 中多出 sw ?錄, 并且內(nèi)部包含 redis-plus-plus 的?系列頭?件. 會在 /usr/local/lib/ 中多出?系列 libredis 庫?件

二、redis的連接使用

詳細的API:
Github 地址

源碼結(jié)構(gòu):

.
├── Makefile
└── src
    ├── generic.cc
    ├── list.cc
    ├── set.cc
    └── string.cc
1 directory, 5 files

使用makefile編譯時需要注意:由于不同系統(tǒng)中, 安裝好的庫所在位置會存在差異. 因此要注意?件路徑是否存在

test: test.cc
g++ -std=c++17 -o $@ $^ /usr/local/lib/libredis++.a /lib/x86_64-linux-gnu/libhiredis.a -pthread

2.1創(chuàng)建redis對象

//頭文件根據(jù)實際情況,可能路徑不同
#include<iostream>
#include<vector>
#include<string>
#include<hiredis/hiredis.h>
#include<sw/redis++/redis.h>
int main(){

    Redis redis("tcp://127.0.0.1:6379");//傳入url
    return 0;
}

2.2向redis中添加元素

一次添加單個元素

//添加元素
std::string key = "key";
std::string value = "hello";

bool b = redis.set(key, value);
//b = redis.set("mykey", "World", std::chrono::seconds(0),sw::redis::UpdateType::EXIST);
//b = redis.set("mykey", "World", std::chrono::milliseconds(0), sw::redis::UpdateType::NOT_EXIST);
std::cout << "set " << key << value << std::endl;
if(b){
    std::cout << " set OK" << std::endl;
}else{
    std::cout << "set failed" << std::endl;
}

一次添加多個元素

//批量添加元素
std::vector<std::pair<std::string,std::string>> v = {{"key","hello",},{"key1","world"},{"key2", "redis"}};
redis.mset(v.begin(),v.end());

2.3判斷元素是否存在

//判斷元素是否存在
std::string key = "key";
long long n = redis.exists(key);
std::cout &lt;&lt; "exists key" &lt;&lt; std::endl &lt;&lt; n &lt;&lt; std::endl;

2.4獲取元素

一次獲取一個元素

//獲取元素
sw::redis::OptionalString ret = redis.get(key);
std::cout << "redis<<< " << "get " << key << std::endl;
if(ret){
    std::cout << *ret << std::endl;
}else{
    std::cout << "nil" << std::endl;
}

一次獲取多個元素

//批量獲取元素
std::vector<sw::redis::OptionalString> values;
//創(chuàng)建插入迭代器
//std::insert_iterator<std::vector<sw::redis::OptionalString>> ret = std::inserter(values, values.begin());
std::insert_iterator<std::vector<sw::redis::OptionalString>> ni(values,values.begin());

redis.mget({"key", "key1", "key2"}, ni);

//輸出獲取到的元素
for(auto e : values){
    std::cout << *e << std::endl;
}

2.5設(shè)置獲取過期時間

設(shè)置過期時間:

//設(shè)置過期時間
std::string key = "key";
bool b = redis.expire(key,std::chrono::seconds(10));
if(b == false)std::cout << "expire failed" << std::endl;

獲取過期時間:

//獲取過期時間
long long s = redis.ttl(key);
std::cout << key << "的過期時間:" << s << std::endl;

2.6獲取類型

//獲取當(dāng)前key的類型
std::string type = redis.type(key);
std::cout << key << "類型為:" << type << std::endl;

2.7 刪除當(dāng)前數(shù)據(jù)庫

redis.flushdb();

到此這篇關(guān)于使用redis-plus-plus庫連接redis的實現(xiàn)方法的文章就介紹到這了,更多相關(guān)redis-plus-plus庫連接redis內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Redis?整數(shù)集合的具體使用(intset)

    Redis?整數(shù)集合的具體使用(intset)

    對于集合,STL?的?set?相信大家都不陌生,本文主要介紹了整數(shù)集合,又稱為?intset,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 淺談為什么單線程的redis那么快

    淺談為什么單線程的redis那么快

    本文主要介紹了為什么單線程的redis那么快,主要介紹了幾點原因,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Redis 哨兵高模式搭建及Java代碼配置

    Redis 哨兵高模式搭建及Java代碼配置

    這篇文章主要介紹了Redis 哨兵高模式搭建及Java代碼配置,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Redis分布式鎖一定要避開的兩個坑

    Redis分布式鎖一定要避開的兩個坑

    這篇文章主要為大家詳細介紹了Redis中分布式鎖一定要避開的兩個坑以及對應(yīng)的解決方法,文中的示例代碼講解詳細,希望對大家有所幫助
    2023-04-04
  • Redis常見限流算法原理及實現(xiàn)

    Redis常見限流算法原理及實現(xiàn)

    這篇文章主要介紹了Redis常見限流算法原理及實現(xiàn),限流簡稱流量限速(Rate?Limit)是指只允許指定的事件進入系統(tǒng),超過的部分將被拒絕服務(wù)、排隊或等待、降級等處理
    2022-08-08
  • Redis高并發(fā)問題的解決方法

    Redis高并發(fā)問題的解決方法

    這篇文章主要介紹了Redis高并發(fā)問題的解決辦法,具有很好的參考價值,感興趣的小伙伴們可以參考一下,具體如下:
    2018-05-05
  • Redis 有序集合的使用場景

    Redis 有序集合的使用場景

    在Redis的學(xué)習(xí)中,有序集合是一種非常實用的數(shù)據(jù)結(jié)構(gòu),本文就來介紹一下Redis 有序集合的使用場景,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • 基于redis.properties文件的配置及說明介紹

    基于redis.properties文件的配置及說明介紹

    今天小編就為大家分享一篇基于redis.properties文件的配置及說明介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Windows下搭建Redis哨兵集群模式的方法步驟

    Windows下搭建Redis哨兵集群模式的方法步驟

    哨兵模式,是基于主從復(fù)制模式,主從復(fù)制的優(yōu)點全都擁有,并且主從可以實現(xiàn)自動切換,故障轉(zhuǎn)移等功能,本文主要介紹了Windows下搭建Redis哨兵集群模式的方法步驟,文中通過圖文介紹的非常詳細,感興趣的小伙伴們可以參考一下,需要的朋友可以參考下
    2023-09-09
  • Redis是單線程的嗎

    Redis是單線程的嗎

    Redis使用單線程的原因就是多線程并不能有效提升Redis的性能,相反可能還會降低性能,所以自然而然使用單線程,本文給大家詳細介紹了Redis為什么是單線程的,感興趣的朋友跟隨小編一起看看吧
    2023-06-06

最新評論