RedisConnection - ScutGame/Scut GitHub Wiki

此章节介绍如何使用服务端的Redis内存数据库

Redis介绍

Redis是一种新型的数据库,与传统的关系型数据不同,它只使用Key-Value键值对方式存储的,它具体高效的读写性能,是传统关系型数据所不具备的;因此我们使用它来做游戏服务器的后端存储数据库。

游戏中如何使用

首先我们需要到Redis官网下载最新的Redis Server包, 安装方式参考如何搭建Scut服务端Linux/Mac开发环境 或者如何搭建Scut服务端Window开发环境,Window平台版本的包可以在Scut官网下载Redis2.6.12

配置Redis Server后,并启动它;获得Redis的连接地址(配置时给的是6379端口);

游戏配置Redis连接

接下来我们通过在游戏中配置127.0.0.1:6379这个地址来连接到Redis服务器,在GameServer.exe.config配置如下:

<appSettings>
    <add key="Redis.Host" value="127.0.0.1:6379" />
</appSettings>

另外一个游戏服只能配置一个Redis,如果多个游戏服连接一个Redis,需要配置成主从服的关系,主服不用配置,从服增加配置如下:

<appSettings>
    <add key="Slave.MessageQueue" value="Slave1"/>
</appSettings>

现在我们可以直接运行GameServer.exe程序了,看到输出Server has started successfully!说明成功了,输入结果如下:

///////////////////////////////////////////////////////////////////////////

    //   ) )  //   ) )  //   / / /__  ___/   SCUT Server version 6.7.9.7
   ((        //        //   / /    / /       Game: 0   Server: 0
     \\     //        //   / /    / /        Port: 9801
       ) ) //        //   / /    / /
((___ / / ((____/ / ((___/ /    / /                http://www.scutgame.com


15:52:12 Server is starting...
15:52:24 script compiled successfully.
15:52:24 Start checking table schema, please wait.
15:52:25 Check table schema successfully.
15:52:25 CacheFactory listen has started...
# Server command "Ctrl+C" or "Ctrl+Break" exit.
15:52:26 Server has started successfully!
# Server is listening...

调用Redis操作方法

提供了RedisConnectionPool类操作Redis的方法,方法如下:

  • CheckConnect:检查是否能连接到Redis服务器
  • GetNextNo:获得Redis数据库的自增ID,类似传统数据库的表的自增ID
  • SetNo:与GetNextNo结合使用,这是设置增量的起始值
  • Process:获得一个Redis连接,提供给业务层调用
  • ProcessReadOnly:获得一个只读的Redis连接,提供给业务层调用
  • TryGetEntity:根据定义的Model实体框架信息从Redis中取出实体数据列表
  • TryUpdateEntity:更新实体到Redis