using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using StackExchange.Redis;
namespace RedisStuy
{
///
/// 字符串操作学习
/// http://www.redis.cn
/// http://www.redis.net.cn/order/
///
public class RedisStringStudy
{
#region 初始化
private IDatabase redisDatabase;
public RedisStringStudy()
{
redisDatabase = RedisHelper.GetRedisDatabase();
}
#endregion
#region 设置键值
///
/// 设置指定key的值
/// 如果Key已经存在,管是做么类型,将被重写为指定的String值。
///
public bool StringSet(RedisKey key, RedisValue value, TimeSpan? expiry, When when = When.Always, CommandFlags flags = CommandFlags.None)
{
return redisDatabase.StringSet(key, value, expiry, when, flags);
}
///
/// 设置多组key value 的值
///
public bool StringSet(KeyValuePair[] values, When when = When.Always, CommandFlags flags = CommandFlags.None)
{
return redisDatabase.StringSet(values, when, flags);
}
///
/// 将给定 key 的值设为value,并返回 key 的旧值
///
/// key 的旧值
public RedisValue StringGetSet(RedisKey key, RedisValue value, CommandFlags flags = CommandFlags.None)
{
return redisDatabase.StringGetSet(key, value, flags);
}
#endregion
#region 修改键值
///
/// 用指定的字符串覆盖给定 key 所储存的字符串值,覆盖的位置从偏移量 offset 开始
///
/// 被修改后的字符串长度
public RedisValue StringSetRange(RedisKey key, long offset, RedisValue value, CommandFlags flags = CommandFlags.None)
{
return redisDatabase.StringSetRange(key, offset,value, flags);
}
///
/// 指定内容追加内容
/// 如果 key 已经存在并且是一个字符串,将 value 追加到 key 原来的值的末尾。
/// 如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样。
///
///
/// 追加 value 之后, key 中字符串的长度。
///
public long StringAppend(RedisKey key, RedisValue value, CommandFlags flags=CommandFlags.None)
{
return redisDatabase.StringAppend(key, value, flags);
}
///
/// 增加key中储存数字的整数值
///
public long StringIncrement(RedisKey key, long value = 1, CommandFlags flags = CommandFlags.None)
{
return redisDatabase.StringIncrement(key, value, flags);
}
///
/// 增加key中储存数字的浮点值
///
public double StringIncrement(RedisKey key, double value = 1, CommandFlags flags = CommandFlags.None)
{
return redisDatabase.StringIncrement(key, value, flags);
}
///
/// 减少key中储存数字的整数值
///
///
/// 执行 DECR 命令之后 key 的值
///
public long StringDecrement(RedisKey key, long value, CommandFlags flags = CommandFlags.None)
{
return redisDatabase.StringDecrement(key, value, flags);
}
///
/// 减少key中储存数字的浮点数值
///
///
/// 执行 DECR 命令之后 key 的值
///
public double StringDecrement(RedisKey key, double value, CommandFlags flags = CommandFlags.None)
{
return redisDatabase.StringDecrement(key, value, flags);
}
#endregion
#region 读取键值
///
/// 获取指定键的值
///
public RedisValue StringGet(RedisKey key, CommandFlags flags = CommandFlags.None)
{
return redisDatabase.StringGet(key, flags);
}
///
/// 获取指定一组键的一组值
///
public RedisValue[] StringGet(RedisKey[] keys, CommandFlags flags = CommandFlags.None)
{
return redisDatabase.StringGet(keys, flags);
}
///
/// 获取 Key 的值,并带有生存时间信息
/// 如果 Key 不存在,则返回特殊值nil。
/// 如果 key 的值不是字符串,则返回一个错误,因为GET只处理字符串值。
///
public RedisValueWithExpiry StringGetWithExpiry(RedisKey key, CommandFlags flags = CommandFlags.None)
{
return redisDatabase.StringGetWithExpiry(key, flags);
}
///
/// 返回 key 中字符串值的子字符
///
public RedisValue StringGetRange(RedisKey key, long start, long end, CommandFlags flags=CommandFlags.None)
{
return redisDatabase.StringGetRange(key, start, end, flags);
}
///
/// 获取 key 所储存的字符串值的长度
///
public long StringLength(RedisKey key, CommandFlags flags=CommandFlags.None)
{
return redisDatabase.StringLength(key, flags);
}
#endregion`
#region 二进制一些操作,省略
#endregion
}
}