码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • C/C++轻量级并发TCP服务器框架Zinx-游戏服务器开发006:基于redis查找玩家姓名+游戏业务实现总结


    文章目录

    • 1 Redis的安装与API的使用
      • 1.1 安装目录及环境变量
      • 1.2 设置远程客户端连接和守护进程
      • 1.3 启动redis
      • 1.4 Hiredis API的使用
      • 1.5 我的动态库和头文件
    • 2 Redis的使用
      • 2.1 初始化时候
      • 2.2 结束的时候
    • 3 测试
    • 4 Makefile
    • 5 游戏业务总结

    1 Redis的安装与API的使用

    1.1 安装目录及环境变量

    7.2版本redis-cli命令在bin目录下:

    vim /etc/profile
    
    export REDIS_HOME=/usr/local/redis/bin
    export PATH=$PATH:$REDIS_HOME
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述在这里插入图片描述

    1.2 设置远程客户端连接和守护进程

    cp /usr/local/redis/redis-7.2.3/redis.conf /usr/local/redis/bin/
    vim /usr/local/redis/bin/redis.conf
    
    • 1
    • 2

    在这里插入图片描述

    1.3 启动redis

    redis-server /usr/local/redis/bin/redis.conf
    
    • 1

    1.4 Hiredis API的使用

    git clone https://github.com/redis/hiredis.git
    cd hiredis
    make
    make install
    
    • 1
    • 2
    • 3
    • 4
    mkdir -p /usr/local/include/hiredis /usr/local/include/hiredis/adapters /usr/local/:/usr/local/protobuf/lib/:/opt/instantclient_12_2
    cp -pPR hiredis.h async.h read.h sds.h alloc.h sockcompat.h /usr/local/include/hiredis
    cp -pPR adapters/*.h /usr/local/include/hiredis/adapters
    cp -pPR libhiredis.so /usr/local/:/usr/local/protobuf/lib/:/opt/instantclient_12_2/libhiredis.so.1.2.1-dev
    cd /usr/local/:/usr/local/protobuf/lib/:/opt/instantclient_12_2 && ln -sf libhiredis.so.1.2.1-dev libhiredis.so && ln -sf libhiredis.so.1.2.1-dev libhiredis.so.1
    cp -pPR libhiredis.a /usr/local/:/usr/local/protobuf/lib/:/opt/instantclient_12_2
    mkdir -p /usr/local/:/usr/local/protobuf/lib/:/opt/instantclient_12_2/pkgconfig
    cp -pPR hiredis.pc /usr/local/:/usr/local/protobuf/lib/:/opt/instantclient_12_2/pkgconfig
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    1.5 我的动态库和头文件

    根据上述的输出信息,我把动态库直接拷贝到了系统目录下,程序加载的时候加载的是libhiredis.so.1.2.1-dev

     cp /usr/local/:/usr/local/protobuf/lib/:/opt/instantclient_12_2/libhiredis.so /usr/lib
     
     cp /usr/local/:/usr/local/protobuf/lib/:/opt/instantclient_12_2/libhiredis.so.1.2.1-dev /usr/lib
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    头文件的位置没有改变,使用的默认设置

    usr/local/include/hiredis
    
    • 1
    • 路径和库要根据实际情况设置
    • C函数库,包含头文件 ,编译时指定链接参数为-L/usr/lib -lhiredis。
    • 运行时若提示找不到共享库,则在.bashrc最末端添加一句export LD_LIBRARY_PATH=/usr/lib,重新打开终端运行。
    • redisConnect跟数据库建立链接(redisFree释放掉)。
    • redisCommand发命令并通过返回值取出结果(freeReplyObject释放掉)。

    2 Redis的使用

    2.1 初始化时候

    //记录当前姓名到redis的game_name
    	//1 连接redis
    	auto context = redisConnect("127.0.0.1", 6379);
    	//2 发送lpush命令
    	if (NULL != context)
    	{
    		freeReplyObject(redisCommand(context, "lpush game_name %s", szName.c_str()));
    		redisFree(context);
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2.2 结束的时候

    	//从redis  game_name中删掉当前姓名
    	auto context = redisConnect("127.0.0.1", 6379);
    	if (NULL != context)
    	{
    		freeReplyObject(redisCommand(context, "lrem game_name 1 %s", szName.c_str()));
    		redisFree(context);
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3 测试

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    4 Makefile

    game:*.cpp *h
    	g++ -Wall -g -pthread -std=c++11 $^ -o $@ -lzinx -lpthread -lprotobuf
    
    • 1
    • 2

    在这里插入图片描述

    5 游戏业务总结

    在这里插入图片描述

  • 相关阅读:
    【代码随想录】【数组】59.螺旋矩阵II
    分享从零开始学习网络设备配置--任务3.8 使用动态路由OSPF实现网络连通
    2024年3月第15届蓝桥杯青少组STEMA考试C++中高级真题试卷
    从 jsonpath 和 xpath 到 SPL
    【黄啊码】PHP如何防止重复提交
    python切分TXT的句子到Excel(复制可用)——以及python切分句子遇到的问题汇总
    解决windows下安装python并终端运行python弹出windows商店的最终解决方案
    springBoot 入门一 :创建springBoot项目
    测试网页调用本地可执行程序(续1:解析参数中的中文编码)
    Spring Cloud 升级之路 - 2020.0.x - 1. 背景知识、需求描述与公共依赖
  • 原文地址:https://blog.csdn.net/jiangchufeng123/article/details/134288436
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号