Unity中使用Redis,需要导入外部的包。
1、TeamDev.Redis
之前在论坛上只找到了两个博客,两位作者均使用TeamDev.Redis这个包
https://blog.csdn.net/weixin_44762509/article/details/107086650
https://blog.csdn.net/blog_lee/article/details/84344923
大体导入操作上面两篇文章中都有介绍
个人使用感受是,这个包非常不好用!!!
源文件的注释说明非常少,很多数据库的交互操作也不好用。
部分程序作为参考:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TeamDev.Redis;
using System.Timers;
using System;
public class Machine3_TeamDev : MonoBehaviour
{
private RedisDataAccessProvider redis;
private string[] keys;
private string key;
public float xPos = 0f;
// Use this for initialization
void Awake()
{
redis = new RedisDataAccessProvider();
redis.Configuration.Host = "127.0.0.1";
redis.Configuration.Port = 6379;
redis.Connect();
//选择数据库
redis.SendCommand(RedisCommand.AUTH, "123456");//redis密码,未设置可去掉这句
redis.WaitComplete();
redis.SendCommand(RedisCommand.SELECT, "0"); //选择数据库
redis.WaitComplete();
}
void Start()
{
//打印所有的key
redis.SendCommand(RedisCommand.KEYS, "*");
keys = redis.ReadMultiString();
Debug.Log(keys);
foreach (var item in keys)
{
Debug.Log(item);
}
//读出Hash中的数据
redis.SendCommand(RedisCommand.KEYS, "Info");
string[] keys = { "num", "name" };
string[] infos = redis.Hash[key].Get(keys);
foreach (string item in infos)
{
Debug.Log(item);
}
//读string中的数据
redis.SendCommand(RedisCommand.KEYS, "M3:Movement:X");
key = redis.ReadString();
//redis.Strings[key].Set("100");
float xPos = float.Parse(redis.Strings[key].Get());
Debug.Log("x:" + xPos);
}
}
2、StackExchange.Redis(推荐)
C#操作Redis有很多类库,经过尝试,StackExchange.Redis是非常好用的。
但是尝试在Unity脚本中导入NuGet中的包,在Unity中一直报错,无法正常导入,后来发现是版本问题,只能导入1.2.6版本。
不仅需要在VS中导入包,在Unity中也需要将dll文件拖入Plugins中(如果没有文件夹就新建一个),导入1.2.6的StackExchange.Redis可正常使用!
StackExchange.Redis的用法可见本人的这篇博客
https://blog.csdn.net/Ancolie/article/details/109254358
具体的连接,增删查改操作网上都很多,注释也很友好,推荐使用