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 } }