使用C++操作Redis客户端

这篇具有很好参考价值的文章主要介绍了使用C++操作Redis客户端。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用C++操作Redis客户端,redis,redis,c++

"Who can say where the path will go?" 


         前面我们花了很大的篇幅,讲解了redis中常见常使用的五种数据结构,以及五种数据结构的操作和redis命令。不过在日常开发中,我们的这些操作都是在redis为我们提供的客户端中的,就像使用mysql一样,很多时候不是在mysql-cli去编写sql,而是借助代码程序去访问、操作数据库。更多的时候是使用redis的api,来实现定制化的redis客户端程序,达到访问redis的服务器的目的。

        redis提供了通用的客户端程序,比如命令行、第三方图形化客户端,但在实际中,我们更倾向于使用到的是"定制化"的客户端程序。

                   ——前言

认识RESP

为什么能够实现Redis客户端?

        你说能实现redis客户端就能实现嘛?或者说,如果能够实现redis客户端 ,那是否可以实现其他应用层服务的客户端,比如说qq、农药、原神启动?      使用C++操作Redis客户端,redis,redis,c++

RESP协议:        

 使用C++操作Redis客户端,redis,redis,c++

使用C++操作Redis客户端,redis,redis,c++        但实际上,我们并不需要从0开始,遵照上述协议手写一份redis-cli,因为这套协议公开很久了,已经有很多大佬实现了这套解析、构造。我们只需要使用这些大佬提供的库即可。

Redis C++使用

(1) 环境安装

        C++操作redis的库有很多.咱们此处使⽤redis-plus-plus。这个库的功能强⼤,使⽤简单。

安装hiredis:

        因为redis-plus-plus是基于hiredis实现的,而这个库是一个C语⾔实现的redis客⼾端,我们直接使用包管理器安装即可。

使用C++操作Redis客户端,redis,redis,c++

下载 redis-plus-plus源码:

Github:https://github.com/sewenew/redis-plus-plus 使用C++操作Redis客户端,redis,redis,c++

编译 redis-plus-plus: 

        因为Centos系列的camke版本过低,所以我们需要安装camke3:

yum install cmake3

         这个redis-plus-plus使用文档,也介绍了安装手册。

使用C++操作Redis客户端,redis,redis,c++

使用C++操作Redis客户端,redis,redis,c++

        构建成功后,会在“ /usr/local/include/ ”中多出 sw ⽬录,并且内部包含redis-plus-plus的⼀
系列头⽂件,会在 /usr/local/lib/ 中多出⼀系列 libredis 库⽂件。

使用C++操作Redis客户端,redis,redis,c++        现在,我们可以开始使用这个库来操作redis了!         

(2) redis-plus-plus "hello world"

● 包含redis-plus-plus头文件.

使用C++操作Redis客户端,redis,redis,c++

● 创建redis对象.

使用C++操作Redis客户端,redis,redis,c++

● 调用ping命令

使用C++操作Redis客户端,redis,redis,c++

● 使用makefile编译生成可执行程序                使用C++操作Redis客户端,redis,redis,c++

        我们运行程序后,直接执行程序,就可以得到server给的响应。

使用C++操作Redis客户端,redis,redis,c++

(3) redis-plus-plus命令使用

通用命令:

命令 执行效果
get/set 获取key、设置key
exist 判断一个key是否存在
del 删除key
keys 查询redisdb中缓存的key
expire / ttl 设置到期时间、剩余到期时间
type 获取value的类型信息

get\set:

使用C++操作Redis客户端,redis,redis,c++

使用C++操作Redis客户端,redis,redis,c++

使用C++操作Redis客户端,redis,redis,c++        但,我们直接打印这个value是不行的,因为这个类没有重载"<<"移位操作符。

使用C++操作Redis客户端,redis,redis,c++

exists:

使用C++操作Redis客户端,redis,redis,c++

del:

使用C++操作Redis客户端,redis,redis,c++

keys:
        C++的迭代器有几种类型,你是否还记得?

● 输出迭代器 (input)

● 输入迭代器 (output)

● 前向迭代器 (forward_list)

● 双向迭代器 (set\map\list)

● 随机迭代器 (string\vector)

使用C++操作Redis客户端,redis,redis,c++

使用C++操作Redis客户端,redis,redis,c++

expire and ttl:        使用C++操作Redis客户端,redis,redis,c++

type:
使用C++操作Redis客户端,redis,redis,c++

String类型操作:

命令 执行效果
set/get 设置、获取key
mset/mget 多次设置、获取key
getrange/setrange 获取范围内的value,覆盖在范围内的原始字符串
incr/decr ++value\-value

set\get:

使用C++操作Redis客户端,redis,redis,c++

set "NX 和 XX":

使用C++操作Redis客户端,redis,redis,c++

使用C++操作Redis客户端,redis,redis,c++

mset\mget:

使用C++操作Redis客户端,redis,redis,c++

getrange 和 setrange: 使用C++操作Redis客户端,redis,redis,c++

incr/decr: 

使用C++操作Redis客户端,redis,redis,c++

hash类型操作:

命令 执行效果
hset\hget 设置哈希,获取哈希value
hexists 判断field存在
hdel 删除field
hkeys\hvals 返回存储在键中的哈希中的所有字段名称。返回存储在键中的哈希中的所有值。
hmget\hmset 多次设置哈希,获取哈希value

hset 和 hget:

使用C++操作Redis客户端,redis,redis,c++

hexits:

使用C++操作Redis客户端,redis,redis,c++

hdel:
使用C++操作Redis客户端,redis,redis,c++

hkeys\hvals:

使用C++操作Redis客户端,redis,redis,c++

list类型操作:

命令 执行效果
lpush/rpush 头插、尾插
lpop/rpop 头删、尾删
blpop/brpop 阻塞头删、尾删
llen key中value的个数

lpush\lrange: 

使用C++操作Redis客户端,redis,redis,c++

blpop:

使用C++操作Redis客户端,redis,redis,c++

llen:

使用C++操作Redis客户端,redis,redis,c++

 

set类型操作:

         

命令 执行效果
sadd\spop 添加、删除(随机)
smembers 查询所有的key
sismember key是否存在
scard key的个数
sinter/sinterstore 交集、交集存储

sadd 和 smembers: 

使用C++操作Redis客户端,redis,redis,c++

 

sismember:

使用C++操作Redis客户端,redis,redis,c++

scard:

使用C++操作Redis客户端,redis,redis,c++

 

sinterstore:

使用C++操作Redis客户端,redis,redis,c++

Zset类型操作:

命令 执行效果
zadd/zrange 添加、返回存储在< key >中的排序集合中指定范围的元素。
zcard 返回存储在key中的排序集的排序集基数(元素数)。
zrem 删除key中的member
zscore 获取key中的分数
zrank 返回成员在存储于键的排序集中的排名

zadd/zrange: 

使用C++操作Redis客户端,redis,redis,c++

zrem:

使用C++操作Redis客户端,redis,redis,c++ 

zscore/zrank:

使用C++操作Redis客户端,redis,redis,c++ 

使用C++操作Redis客户端,redis,redis,c++

        以上就是咱们五种数据结构的一些基本的用C++操纵redis的方式,当然这不是全部,只是一些例举。 


本篇到此结束,感谢你的阅读。

祝你好运,向阳而生~

使用C++操作Redis客户端,redis,redis,c++文章来源地址https://www.toymoban.com/news/detail-692094.html

到了这里,关于使用C++操作Redis客户端的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Redis客户端Redisson使用示例

    Redisson作为Java连接Redis的客户端,提供了连接、操作Redis的方法,还提供分布式锁、红锁等并发工具。Redisson除了提供同步接口外,还提供了异步(Async)、反射式(Reactive)和RxJava2标准的接口。Redisson会序列化Java对象然后保存到redis,所以通过redis命令行设置的值,Redisson来获

    2024年02月06日
    浏览(44)
  • Redis的Java客户端-Java客户端以及SpringDataRedis的介绍与使用

    Spring Data Redis底层支持同时兼容Jedis和Lettuce两种不同的Redis客户端,可以根据需要任意选择使用其中的一种。这样既可以保留现有代码使用的Jedis方式,也可以通过使用基于Netty的高性能Lettuce客户端,提升应用的性能和吞吐量。 Jedis是一个传统的Java Redis客户端,使用BIO进行So

    2024年02月08日
    浏览(34)
  • Redis - Python 客户端基本使用指南

    参考:python 模块Redis模块,连接Redis数据库 Python 中的 Redis 客户端库允许开发者与 Redis 数据库进行交互。这些库允许在 Python 中连接到 Redis、执行命令以读取或写入数据,并处理 Redis 数据。 以下是一些常见的 Python Redis 客户端库: redis 库:是 Python 中最常用的 Redis 客户端库之

    2024年02月08日
    浏览(29)
  • Spring Boot 整合 Redis,使用 RedisTemplate 客户端

    1.1.1 添加依赖 redis 的依赖: 1.1.2 yml 配置文件 1.1.3 Config 配置文件 1.1.4 使用示例 注入 RedisTemplate,即可操作 Redis,简单示例如下: 1.2.1 RedisTemplate 简介 RedisTemplate 是 Spring Data Redis 项目的一部分,旨在简化在Java应用程序中使用 Redis 的过程。它提供了一组简单的方法,可以在

    2024年02月09日
    浏览(207)
  • [Redis]Redis客户端

    Redis 给我们提供了三种客户端,分别是: 命令行客户端 图形化桌面客户端 编程客户端 在 Redis 安装完成之后,就有了 Redis 命令行客户端。即 Redis 安装完成后就自带了命令行客户端。 Redis 自带的命令行客户端就是 redis-cli。 option:选项 其中常见的options有: -h 127.0.0.1 :指定

    2024年02月06日
    浏览(39)
  • Redis客户端介绍

    redis安装完成后有自带的命令行客户端,即redis-cli,使用方式如下 options ——参数 -h 127.0.0.1 :指定要连接的redis节点的ip地址,默认值127.0.0.1 -p 6379 :指定要连接的redis节点的端口,默认值6379 -a xxxxxx :指定redis的访问密码 … commonds ——redis的操作命令 ping :心跳测试,服务器

    2024年02月06日
    浏览(32)
  • 【Redis入门篇】| Redis的Java客户端

    目录 一: Redis的Java客户端 1. Jedis快速入门 2. Jedis连接池 3. SpringDataRedis快速入门 4. RedisSerializer配置 5. StringRedisTemplate 图书推荐 在Redis官网中提供了各种语言的客户端,地址: https://redis.io/resources/clients/ Jedis: 以 Redis 命令作为方法名称,学习成本低,简单实用。但是 Jedis 实

    2024年02月03日
    浏览(82)
  • 【实践篇】Redis最强Java客户端(四)之Ression分布式集合使用指南

    前两章我们了解了《【实践篇】Redis最强Java客户端(一)之Redisson入门介绍》和《【实践篇】Redis最强Java客户端(二)之Redisson基础概念》 本章第四章主要介绍Ression分布式集合使用指南。 上一章《Redisson 7种分布式锁使用指南》回顾。 本章我们介绍了在Redisson中实现的各种分布式集

    2024年02月09日
    浏览(32)
  • Redis客户端 - RedisSerializer

    原文首更地址,阅读效果更佳! Redis客户端 - RedisSerializer | CoderMast编程桅杆 https://www.codermast.com/database/redis/redistemplate-redis-serializer.html 前景回顾 在上一篇中,我们实现了一个简单的案例,操作一个 String 类型的数据,插入了一个 name = codermast 的数据到Redis。 使用redis-cli客户端

    2024年02月09日
    浏览(37)
  • redis 登录客户端命令

    Redis 命令用于在 redis 服务上执行操作。 要在 redis 服务上执行命令需要一个 redis 客户端。Redis 客户端在我们之前下载的的 redis 的安装包中。 语法 Redis 客户端的基本语法为: $ redis-cli 实例 以下实例讲解了如何启动 redis 客户端: 启动 redis 客户端,打开终端并输入命令 redis

    2023年04月08日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包