链接: https://pan.baidu.com/s/1lZ0vGsQb4CHrPIdO26Q8pg 密码: fvnb
文件在这里,有兴趣可以看看
先一步一步封装吧。
首先是ConfigurationHelper
public static class ConfigurationHelper
{
internal static T Get<T>(string appSettingsKey, T defaultValue)
{
string text = ConfigurationManager.AppSettings[appSettingsKey];
if (string.IsNullOrWhiteSpace(text))
return defaultValue;
try
{
var value = Convert.ChangeType(text, typeof(T));
return (T)value;
}
catch
{
return defaultValue;
}
}
}
下面是RedisClientConfigurations
private static string _url = ConfigurationHelper.Get("RedisServer", "127.0.0.1");
public static string Url
{
get { return _url; }
set { _url = value; }
}
private static int _port = 7000;
public static int Port
{
get { return _port; }
set { _port = value; }
}
private static int _connectTimeout = 10000;
public static int ConnectTimeout
{
get { return _connectTimeout; }
set { _connectTimeout = value; }
}
private static int _connectRetry = 3;
public static int ConnectRetry
{
get { return _connectRetry; }
set { _connectRetry = value; }
}
private static int _defaultDatabase = ConfigurationHelper.Get("RedisDataBase", 0);
public static int DefaultDatabase
{
get { return _defaultDatabase; }
set { _defaultDatabase = value; }
}
private static bool _preserveAsyncOrder = false;
public static bool PreserveAsyncOrder
{
get { return _preserveAsyncOrder; }
set { _preserveAsyncOrder = value; }
}
}
RedisClient:
static RedisClient()
{
ConfigurationOptions option = new ConfigurationOptions();
option.EndPoints.Add("127.0.0.1", 7005);
_redis = ConnectionMultiplexer.Connect(option);
_db = _redis.GetDatabase();
}
#region 私有公用方法 在其中我们序列化操作使用Newtonsoft.Json组件
private string SerializeContent(object value)
{
return JsonConvert.SerializeObject(value);
}
private T DeserializeContent<T>(RedisValue myString)
{
return JsonConvert.DeserializeObject<T>(myString);
}
/// <summary>
/// string类型存值并设置过期时间
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="key"></param>
/// <param name="t"></param>
/// <param name="ts"></param>
/// <returns></returns>
public static bool Set<T>(string key, T t, TimeSpan ts)
{
var str = JsonConvert.SerializeObject(t);
return _db.StringSet(key, str,ts);
}
#endregion
string类型的封装
#region Redis String数据类型操作
/// <summary>
/// Redis String类型 新增一条记录
/// </summary>
/// <typeparam name="T">generic refrence type</typeparam>
/// <param name="key&