usingKuRuMi.Mio.DoMain.RedisCache.RedisCommon;usingStackExchange.Redis;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceKuRuMi.Mio.DoMain.RedisCache.RedisCaching
{///
///表示string的操作///
public classDoRedisStringCache : IRedisCaching
{private RedisBase redis = null;publicDoRedisStringCache()
{
redis= newRedisBase();
}#region 同步执行
///
///单个保存///
///
/// 值
/// 过期时间
///
public bool StringSet(string key, string val, TimeSpan? exp = default(TimeSpan?))
{
key=redis.AddKey(key);return redis.DoSave(db =>db.StringSet(key, val, exp));
}///
///保存多个key value///
/// 键值对
///
public bool StringSet(List>KeyVal)
{
List> newkey = KeyVal.Select(k => new KeyValuePair(redis.AddKey(k.Key), k.Value)).ToList();return redis.DoSave(db =>db.StringSet(newkey.ToArray()));
}///
///保存一个对象///
///
///
///
///
///
public bool StringSet(string key, T obj, TimeSpan? exp = default(TimeSpan?))
{
key=redis.AddKey(key);string json =redis.ConvertJson(obj);return redis.DoSave(db =>db.StringSet(key, json, exp));
}///
///获取单个///
///
///
public string StringGet(stringkey)
{
key=redis.AddKey(key);return redis.DoSave(db =>db.StringGet(key));
}///
///获取单个对象///
///
///
///
public T StringGet(stringkey) {
key=redis.AddKey(key);var val = redis.DoSave(db =>db.StringGet(key));return redis.ConvertObj(val);
}///
///为数字增长val///
///
/// 可以为负数
/// 增长后的值
public double StringIncrement(string key, double val = 1)
{
key=redis.AddKey(key);return redis.DoSave(db =>db.StringIncrement(key, val));
}///
///为数字减少val///
///
/// 可以为负数
/// 增长后的值
public double StringDecrement(string key, double val = 1)
{
key=redis.AddKey(key);return redis.DoSave(db =>db.StringDecrement(key, val));
}#endregion
#region 异步执行
///
///异步保存单个///
///
///
///
///
public async Task StringSetAsync(string key, string val, TimeSpan? exp = default(TimeSpan?))
{
key=redis.AddKey(key);return await redis.DoSave(db =>db.StringSetAsync(key, val, exp));
}///
///异步保存多个key value///
/// 键值对
///
public async Task StringSetAsync(List>KeyVal)
{
List> newkey = KeyVal.Select(k => new KeyValuePair(redis.AddKey(k.Key), k.Value)).ToList();return await redis.DoSave(db =>db.StringSetAsync(newkey.ToArray()));
}///
///异步保存一个对象///
///
///
///
///
///
public async Task StringSetAsync(string key, T obj, TimeSpan? exp = default(TimeSpan?))
{
key=redis.AddKey(key);string json =redis.ConvertJson(obj);return await redis.DoSave(db =>db.StringSetAsync(key, json, exp));
}///
///异步获取单个///
///
///
public async Task StringGetAsync(stringkey)
{
key=redis.AddKey(key);return await redis.DoSave(db =>db.StringGetAsync(key));
}///
///异步获取单个///
///
///
public async Task StringGetAsync(stringkey)
{
key=redis.AddKey(key);var val = await redis.DoSave(db =>db.StringGetAsync(key));return redis.ConvertObj(val);
}///
///异步为数字增长val///
///
/// 可以为负数
/// 增长后的值
public async Task StringIncrementAsync(string key, double val = 1)
{
key=redis.AddKey(key);return await redis.DoSave(db =>db.StringIncrementAsync(key, val));
}///
///为数字减少val///
///
/// 可以为负数
/// 增长后的值
public async Task StringDecrementAsync(string key, double val = 1)
{
key=redis.AddKey(key);return await redis.DoSave(db =>db.StringDecrementAsync(key, val));
}#endregion}
}