2025-03-12 09:58:37 +08:00
|
|
|
|
using FreeRedis;
|
2025-03-12 14:57:42 +08:00
|
|
|
|
using JetBrains.Annotations;
|
2025-03-12 09:58:37 +08:00
|
|
|
|
using Microsoft.Extensions.Options;
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Diagnostics;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using System.Text.Json;
|
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
using Volo.Abp.DependencyInjection;
|
|
|
|
|
|
|
|
|
|
|
|
namespace JiShe.CollectBus.FreeRedisProvider;
|
|
|
|
|
|
|
|
|
|
|
|
public class FreeRedisProviderService : IFreeRedisProviderService, ISingletonDependency
|
|
|
|
|
|
{
|
|
|
|
|
|
private FreeRedisOptions freeRedisOptions;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// FreeRedis
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public FreeRedisProviderService(IOptions<FreeRedisOptions> options)
|
|
|
|
|
|
{
|
|
|
|
|
|
freeRedisOptions = options.Value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-03-12 14:57:42 +08:00
|
|
|
|
[NotNull]
|
|
|
|
|
|
public IRedisClient FreeRedis
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
return GetClient();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-03-12 09:58:37 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取 FreeRedis 客户端
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public IRedisClient GetClient()
|
|
|
|
|
|
{
|
2025-03-12 14:57:42 +08:00
|
|
|
|
string connectionString = $"{freeRedisOptions.Configuration},defaultdatabase={freeRedisOptions.DefaultDB}";
|
|
|
|
|
|
var redisClinet = new RedisClient(connectionString);
|
2025-03-12 09:58:37 +08:00
|
|
|
|
redisClinet.Serialize = obj => JsonSerializer.Serialize(obj);
|
|
|
|
|
|
redisClinet.Deserialize = (json, type) => JsonSerializer.Deserialize(json, type);
|
|
|
|
|
|
redisClinet.Notice += (s, e) => Trace.WriteLine(e.Log);
|
|
|
|
|
|
|
|
|
|
|
|
return redisClinet;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 切换Redis数据库
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="index"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public IRedisClient GetDatabase(int index = 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
var redisClinet = GetClient();
|
|
|
|
|
|
redisClinet.GetDatabase(index);
|
|
|
|
|
|
return redisClinet;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|