C 程序 redis环境配置 访问Redis(二)

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 接上一篇继续给大家分享

项目属性中包含一下头文件和库文件的目录

image.pngimage.png


这三项若能正常运行则不用加 若有问题 看着调试吧…这里已经涉及到知识盲区了

  1. 项目->属性->配置属性->C/C+±>代码生成->运行库->改成多线程调试(/MTd)或多线程(/MT)


  1. 项目->属性->配置属性->链接器->命令行中输入/NODEFAULTLIB:libcmt.lib


  1. 项目->属性->配置属性->C/C+±>预处理器->预处理器定义->添加“_CRT_SECURE_NO_WARNINGS”



代码

#include<stdio.h>

#include<stdlib.h>

#include<string.h>



#include <hiredis.h>


#include "./Win32_Interop/win32fixes.h"


#define NO_QFORKIMPL

#include <Win32_Interop/win32fixes.h>

#pragma comment(lib,"hiredis.lib")

#pragma comment(lib,"Win32_Interop.lib")





int main(int argc, char** argv) {

//链接 redis server

struct timeval timeout = { 1, 500000 }; // 1.5 秒 超时 {秒,微秒}

redisContext* c = redisConnectWithTimeout((char*)"127.0.0.1", 6379, timeout);

if (c->err) {

 //超时 链接错误

 printf("Connection error: %s\n", c->errstr);


 goto end;

}


//操作

//若有错误 返回null  

redisReply* replay = redisCommand(c, "select %d", 15);

if (replay) {

 printf("%d, %s\n", replay->type, replay->str);

 freeReplyObject(replay);

}

else {

 printf("relay == NULL");

}


replay = redisCommand(c, "zadd world_rank 3000 xt");

if (replay) {

 printf("%d %d\n", replay->type, replay->integer);

 freeReplyObject(replay);

}


replay = redisCommand(c, "zrange world_rank 0 10 withscores");

if (replay) {

 if (replay->type == REDIS_REPLY_ARRAY) {

  for (int i = 0; i < replay->elements; i++) {

   printf("%d: %s\n", i, replay->element[i]->str);

  }

 }


 freeReplyObject(replay);

}


end:

//释放

redisFree(c);


system("pause");

return 0;

}


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
目录
相关文章
|
缓存 NoSQL 网络安全
【Azure Redis 缓存】Azure Redis服务开启了SSL(6380端口), PHP如何访问缓存呢?
【Azure Redis 缓存】Azure Redis服务开启了SSL(6380端口), PHP如何访问缓存呢?
152 0
|
3月前
|
NoSQL Linux Redis
每天百万访问也不怕,Redis帮你搞定UV统计
本文介绍了使用Redis实现高性能UV统计系统的方法。Redis凭借其内存数据库特性,支持毫秒级响应和自动去重,非常适合高并发场景下的访客统计。核心思路是利用Redis的Set数据结构作为"每日签到墙",通过记录用户访问ID实现自动去重,并设置24小时过期时间。文章提供了Python代码示例,展示如何记录用户访问和获取当日UV统计数据,还可扩展实现多页面UV统计。相比传统数据库方案,Redis方案更加轻量高效,是中小型网站实现流量统计的理想选择。
218 0
|
8月前
|
NoSQL API Redis
在C程序中实现类似Redis的SCAN机制的LevelDB大规模key分批扫描
通过上述步骤,可以在C程序中实现类似Redis的SCAN机制的LevelDB大规模key分批扫描。利用LevelDB的迭代器,可以高效地遍历和处理数据库中的大量键值对。该实现方法不仅简单易懂,还具有良好的性能和扩展性,希望能为您的开发工作提供实用的指导和帮助。
110 7
|
10月前
|
NoSQL 编译器 Linux
【赵渝强老师】Redis的安装与访问
本文基于Redis 6.2版本,详细介绍了在CentOS 7 64位虚拟机环境中部署Redis的步骤。内容包括安装GCC编译器、创建安装目录、解压安装包、编译安装、配置文件修改、启动服务及验证等操作。视频讲解和相关图片帮助理解每一步骤。
157 0
|
11月前
|
安全 NoSQL 网络安全
漏洞检测与防御:Redis未授权访问漏洞复现
漏洞检测与防御:Redis未授权访问漏洞复现
811 0
|
缓存 负载均衡 NoSQL
【Azure Redis】Azure Redis添加了内部虚拟网络后,其他区域的主机通过虚拟网络对等互连访问失败
【Azure Redis】Azure Redis添加了内部虚拟网络后,其他区域的主机通过虚拟网络对等互连访问失败
|
缓存 NoSQL 网络安全
【Azure Redis 缓存】在Azure Redis中,如何限制只允许Azure App Service访问?
【Azure Redis 缓存】在Azure Redis中,如何限制只允许Azure App Service访问?
|
缓存 NoSQL Redis
【Azure Redis 缓存】C#程序是否有对应的方式来优化并缩短由于 Redis 维护造成的不可访问的时间
【Azure Redis 缓存】C#程序是否有对应的方式来优化并缩短由于 Redis 维护造成的不可访问的时间
|
缓存 NoSQL Redis
【Azure Redis 缓存】Azure Redis加入VNET后,在另一个区域(如中国东部二区)的VNET无法访问Redis服务(注:两个VNET已经结对,相互之间可以互ping)
【Azure Redis 缓存】Azure Redis加入VNET后,在另一个区域(如中国东部二区)的VNET无法访问Redis服务(注:两个VNET已经结对,相互之间可以互ping)
|
4月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?