-
Notifications
You must be signed in to change notification settings - Fork 577
RedisConnection
ScutGame edited this page Jul 6, 2015
·
2 revisions
此章节介绍如何使用服务端的Redis内存数据库
Redis是一种新型的数据库,与传统的关系型数据不同,它只使用Key-Value键值对方式存储的,它具体高效的读写性能,是传统关系型数据所不具备的;因此我们使用它来做游戏服务器的后端存储数据库。
首先我们需要到Redis官网下载最新的Redis Server包, 安装方式参考如何搭建Scut服务端Linux/Mac开发环境 或者如何搭建Scut服务端Window开发环境,Window平台版本的包可以在Scut官网下载Redis2.6.12
配置Redis Server后,并启动它;获得Redis的连接地址(配置时给的是6379端口);
接下来我们通过在游戏中配置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...
提供了RedisConnectionPool类操作Redis的方法,方法如下:
- CheckConnect:检查是否能连接到Redis服务器
- GetNextNo:获得Redis数据库的自增ID,类似传统数据库的表的自增ID
- SetNo:与GetNextNo结合使用,这是设置增量的起始值
- Process:获得一个Redis连接,提供给业务层调用
- ProcessReadOnly:获得一个只读的Redis连接,提供给业务层调用
- TryGetEntity:根据定义的Model实体框架信息从Redis中取出实体数据列表
- TryUpdateEntity:更新实体到Redis