c# 写入 java 操作的 redis 队列

要点:键和值都要序列化或反序列化两次,也就是已经是string后,还要再序列化一次或反序列化一次

复制代码
namespace RedisDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            var scannedData = Newtonsoft.Json.JsonConvert.DeserializeObject<ScannedData>(File.ReadAllText(@"ScannedData.json"));
            scannedData.files[scannedData.files.Keys.ToList()[0]] = new byte[] { };
            scannedData.files[scannedData.files.Keys.ToList()[1]] = new byte[] { };
            scannedData.processedCount = 0;
            RedisHelper.Enqueue(Newtonsoft.Json.JsonConvert.SerializeObject("ScannedData"), Newtonsoft.Json.JsonConvert.SerializeObject(Newtonsoft.Json.JsonConvert.SerializeObject(scannedData)));
        }

        public class ScannedData
        {
            public string schoolUuid { get; set; }
            public string stjcId { get; set; }
            public string version { get; set; }
            public int ifScoreCollate { get; set; }
            public Dictionary<string, byte[]> files { get; set; }
            public int processedCount { get; set; }
        }
    }
}
复制代码
复制代码
public static class RedisHelper
    {
        private static string RedisConnectionSTR = "127.0.0.1:6379,password=xxxxxx";
        private static object RedisLock = new object();
        private static ConnectionMultiplexer RedisInstance = null;

        public static ConnectionMultiplexer Instance
        {
            get
            {
                if (RedisInstance == null)
                {
                    lock (RedisLock)
                    {
                        if (RedisInstance == null || RedisInstance.IsConnected == false)
                        {
                            RedisInstance = ConnectionMultiplexer.Connect(RedisConnectionSTR);
                        }
                    }
                }
                return RedisInstance;
            }
        }

        public static IDatabase GetRedisDatabase()
        {
            return Instance.GetDatabase();
        }

        public static void AddKeyValue(string key, string value)
        {
            TimeSpan span = DateTime.Now.AddMinutes(2) - DateTime.Now;
            GetRedisDatabase().StringSet(key, value, span);
        }

        public static string GetKeyValue(string key)
        {
            return GetRedisDatabase().StringGet(key);
        }

        public static void Enqueue(string key, string value)
        {
            GetRedisDatabase().ListLeftPush(key, value);
        }

        public static string Dequeue(string key)
        {
            return GetRedisDatabase().ListRightPop(key);
        }
    }
复制代码

 

posted on   空明流光  阅读(22)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2015-08-11 用谷歌浏览器来当手机模拟器

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示