C++使用redis的實(shí)現(xiàn)步驟
1. redis客戶端
在前面的學(xué)習(xí)種,我們都是使用redis命令行客戶端手動執(zhí)行操作的;但是更多的時候,需要使用redis的api,來實(shí)現(xiàn)定制化的redis客戶端程序,進(jìn)一步操作redis服務(wù)器(即用程序操作redis)。

我們知道redis是使用網(wǎng)絡(luò)通信來實(shí)現(xiàn)的,那么有網(wǎng)絡(luò)通信就一定要有協(xié)議;redis有自己的應(yīng)用層協(xié)議:RESP

RESP是基于TCP的,請求和應(yīng)答是一問一答式的

下面是協(xié)議的類型:

redis客戶端、服務(wù)器就是按照上述格式,構(gòu)造字符串,向socke中寫入;從socket中讀取字符串,按照上述格式解析。
在我們使用協(xié)議的時候,不需要再按照上述格式,構(gòu)造、解析字符串了;因?yàn)橐呀?jīng)有大佬們寫好了,我們只需要使用人家寫的庫就可以了。
庫有很多,我們使用redis-plus-plus:https://github.com/sewenew/redis-plus-plus
Ubuntu系統(tǒng)下:
- 安裝hiredis: redis-plus-plus 是基于hiredis 實(shí)現(xiàn)的
apt install libhiredis-dev
- 安裝redis-plus-plus
git clone https://github.com/sewenew/redis-plus-plus.git

測試環(huán)境


2. 使用通用命令
get / set

exists、del

keys

expire、ttl

type

3. 使用string命令
get、set、過期時間

nx、ex

mset、mget

getrange、setrange

incr、decr

4. 使用list命令
lpush、rpush、lrange

rpop、lpop、brpop、blpop、llen

blpop與brpop的返回值:OptionalStringPair,里面是包裹了一個pair,pair里面是string;
- pair.first:元素屬于哪個list
- pair.second:當(dāng)前pop的元素

我們可以發(fā)現(xiàn),redis-plus-plus這個庫的風(fēng)格還是非常統(tǒng)一的。
- 當(dāng)一個函數(shù),參數(shù)需要傳遞多個值的時候,往往都是支持 初始化列表 或者是一對迭代器 的方式來進(jìn)行實(shí)現(xiàn)的
- 當(dāng)一個函數(shù)返回值需要表示多個數(shù)據(jù)的時候,也往往會借助插入迭代器,來實(shí)現(xiàn)往一個容器中添加元素的效果
- 當(dāng)某些場景涉及到無效值的時候,往往會搭配 std:optional 來進(jìn)行使用
5. 使用set命令
- sadd、smembers、sismember

scard、spop

sinter、sinterstore、sunionstore

6. 使用hash命令
hset、hget、hexists、hdel

hkeys、hvals

hmset、hmget

7. 使用zset命令
zadd、zrange

zcard、zrem

zscore、zrank

到此這篇關(guān)于C++使用redis的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)C++使用redis內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
OpenCV實(shí)現(xiàn)區(qū)域分割和區(qū)域生長
區(qū)域分割是圖像處理中一個重要的任務(wù),本文主要介紹了OpenCV實(shí)現(xiàn)區(qū)域分割和區(qū)域生長,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-02-02

