You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

168 lines
5.7 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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