【Redis】C++如何使用redis
文章目录
- 1. redis客户端
- 2. 使用通用命令
- 3. 使用string命令
- 3. 使用list命令
- 4. 使用set命令
- 5. 使用hash命令
- 6. 使用zset命令

1. redis客户端
在前面的学习种,我们都是使用redis命令行客户端手动执行操作的;但是更多的时候,需要使用redis的api,来实现定制化的redis客户端程序,进一步操作redis服务器(即用程序操作redis)。
我们知道redis是使用网络通信来实现的,那么有网络通信就一定要有协议;redis有自己的应用层协议:RESP
RESP是基于TCP的,请求和应答是一问一答式的
下面是协议的类型:
redis客户端、服务器就是按照上述格式,构造字符串,向socke中写入;从socket中读取字符串,按照上述格式解析。
在我们使用协议的时候,不需要再按照上述格式,构造、解析字符串了;因为已经有大佬们写好了,我们只需要使用人家写的库就可以了。
库有很多,我们使用redis-plus-plus
:https://github.com/sewenew/redis-plus-plus
Ubuntu系统下:
- 安装hiredis: redis-plus-plus 是基于hiredis 实现的
apt install libhiredis-dev
- 安装redis-plus-plus
git clone https://github.com/sewenew/redis-plus-plus.git
测试环境
2. 使用通用命令
- get / set
- exists、del
- keys
- expire、ttl
- type
3. 使用string命令
- get、set、过期时间
2. nx、ex
- mset、mget
- getrange、setrange
- incr、decr
3. 使用list命令
- lpush、rpush、lrange
- rpop、lpop、brpop、blpop、llen
blpop与brpop的返回值:OptionalStringPair
,里面是包裹了一个pair,pair里面是string;
- pair.first:元素属于哪个list
- pair.second:当前pop的元素
我们可以发现,redis-plus-plus这个库的风格还是非常统一的。
- 当一个函数,参数需要传递多个值的时候,往往都是支持 初始化列表 或者是一对迭代器 的方式来进行实现的
- 当一个函数返回值需要表示多个数据的时候,也往往会借助插入迭代器,来实现往一个容器中添加元素的效果
- 当某些场景涉及到无效值的时候,往往会搭配 std:optional 来进行使用
4. 使用set命令
- sadd、smembers、sismember
- scard、spop
- sinter、sinterstore、sunionstore
5. 使用hash命令
- hset、hget、hexists、hdel
- hkeys、hvals
- hmset、hmget
6. 使用zset命令
- zadd、zrange
- zcard、zrem
- zscore、zrank