123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- using System;
- using System.IO;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- //using CSharpUtil;
- using StackExchange.Redis;
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- namespace RedisTransfer
- {
- internal class Trans2Json : ITransfer
- {
- public void Trans(int db = 0)
- {
- var redis = Redis.Rdb(db);
- Console.WriteLine("{");
- var s = File.ReadAllLines("keys.txt");
- s.ToList().ForEach(x =>
- {
- var t = redis.KeyType(x);
- switch (t)
- {
- case RedisType.String:
- Console.WriteLine(new JProperty(x, (string)redis.StringGet(x)).ToString() + ",");
- break;
- case RedisType.Hash:
- {
- var jo = new JObject();
- redis.HashGetAll(x).ToList().ForEach(x => jo.Add(x.Name, x.Value.ToString()));
- Console.WriteLine(new JProperty(x, jo).ToString() + ",");
- break;
- }
- case RedisType.List:
- {
- var ja = new JArray();
- foreach (var r in redis.ListRange(x, 0, -1))
- {
- ja.Add(r.ToString());
- }
- Console.WriteLine(new JProperty(x, ja).ToString() + ",");
- break;
- }
- case RedisType.Set:
- {
- var ja = new JArray();
- foreach (var r in redis.SetMembers(x))
- {
- ja.Add(r.ToString());
- }
- Console.WriteLine(new JProperty(x, ja).ToString() + ",");
- break;
- }
- case RedisType.SortedSet:
- {
- var ja = new JArray();
- foreach (var r in redis.SortedSetRangeByScoreWithScores(x))
- {
- ja.Add(r.ToString());
- }
- Console.WriteLine(new JProperty(x, ja).ToString()+",");
- break;
- }
- default:
- Console.WriteLine("不支持的redis数据类型");
- break;
- }
- });
- Console.WriteLine("}");
- }
- }
- }
|