String类型很简单,就不做示例演示了,这里只贴出Helper类

        /// <summary>
/// 判断key是否存在
/// </summary>
/// <param name="key"></param>
/// <param name="db"></param>
/// <returns></returns>
public bool KeyExists(string key, int db = -)
{
try
{
_db = GetDatabase(db);
return KeyExists(key);
}
catch (Exception)
{
throw;
}
} /// <summary>
/// 根据key 移除缓存
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public bool Remove(string key, int db = -)
{
try
{
if ((object)key == null)
return false;
_db = GetDatabase(db);
return KeyDelete(key);
}
catch (Exception ex)
{
_log.Fatal("移除:{0}异常:{1}", key, ex.Message);
throw;
}
} /// <summary>
/// 写入缓存数据
/// </summary>
/// <typeparam name="T">类型</typeparam>
/// <param name="key"></param>
/// <param name="value"></param>
/// <param name="span">有效期</param>
/// <returns></returns>
public bool Set<T>(string key, T value, TimeSpan span, int db = -)
{
try
{
if ((object)key == null || value == null)
return false; _db = GetDatabase(db);
if (value != null && (object)value is string)
{
return StringSet(key, value.ToString(), span);
}
return StringSet<T>(key, value, span);
}
catch (Exception ex)
{
_log.Fatal("{0}key写入value:{1}失败,异常原因:{2}", key, value, ex.Message);
throw;
}
} /// <summary>
/// 读取缓存数据 返回实体
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="key"></param>
/// <returns></returns>
public T Get<T>(string key, int db = -)
{
try
{
_db = GetDatabase(db);
return StringGet<T>(key);
}
catch (Exception)
{
throw;
}
} /// <summary>
/// 读取缓存数据 返回字符串
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public string Get(string key, int db = -)
{
try
{
_db = GetDatabase(db);
return StringGet(key);
}
catch (Exception)
{ throw;
}
} /// <summary>
/// 递增
/// </summary>
/// <param name="key"></param>
/// <param name="span"></param>
/// <param name="db"></param>
/// <returns></returns>
public long Increment(string key, TimeSpan span, int db = -)
{
try
{
_db = GetDatabase(db);
var result = this.StringIncr(key);
//设置过期时间
this.KeyExpire(key, span);
return result;
}
catch (Exception)
{ throw;
}
} /// <summary>
/// 递减
/// </summary>
/// <param name="key"></param>
/// <param name="span"></param>
/// <param name="db"></param>
/// <returns></returns>
public long Decrement(string key, TimeSpan span, int db = -)
{
try
{
_db = GetDatabase(db);
var result = this.StringDecr(key);
//设置过期时间
this.KeyExpire(key, span);
return result;
}
catch (Exception)
{ throw;
}
}

StackExchange.Redis 之 String 类型示例的更多相关文章

  1. StackExchange.Redis 之 hash 类型示例

    StackExchange.Redis 的组件封装示例网上有很多,自行百度搜索即可. 这里只演示如何使用Hash类型操作数据: // 在 hash 中存入或修改一个值 并设置order_hashkey ...

  2. StackExchange.Redis 之 SortedSet 类型示例

    1,增加操作 RedisCacheHelper.Instance.ZSortadd(); RedisCacheHelper.Instance.ZSortadd(); RedisCacheHelper. ...

  3. 使用Redis数据库(String类型)

    一 String类型 首先使用启动服务器进程 : redis-server.exe 1. Set 设置Key对应的值为String 类型的value. 例子:向 Redis数据库中插入一条数据类型为S ...

  4. Redis 中 String 类型的内存开销比较大

    使用 String 类型内存开销大 1.简单动态字符串 2.RedisObject 3.全局哈希表 使用 Hash 来存储 总结 参考 使用 String 类型内存开销大 如果我们有大量的数据需要来保 ...

  5. 怎样在Redis通过StackExchange.Redis 存储集合类型List

    StackExchange 是由StackOverFlow出品, 是对Redis的.NET封装,被越来越多的.NET开发者使用在项目中. 绝大部分原先使用ServiceStack的开发者逐渐都转了过来 ...

  6. 深入浅出Redis02 使用Redis数据库(String类型)

    一 String类型 首先使用启动服务器进程 : redis-server.exe 1. Set 设置Key对应的值为String 类型的value. 例子:向 Redis数据库中插入一条数据类型为S ...

  7. [redis] redis 对string类型数据操作

    package com.xwolf.java.redis; import org.junit.Before; import org.junit.Test; import redis.clients.j ...

  8. redis的String类型以及其操作

    Redis的数据类型 String类型以及操作 String是最简单的数据类型,一个key对应一个Value,String类型是二进制安全的.Redis的String可以包含任何数据,比如jpg图片或 ...

  9. Redis中String类型的Value最大可以容纳数据长度

    项目中使用redis存储,key-value方式,在Redis中字符串类型的Value最多可以容纳的数据长度是512M 官方信息: A String value can be at max 512 M ...

随机推荐

  1. es7中数组如何判断元素是否存在

    const arr = [1,2,3,4,5,6] console.log(arr.includes(4)) //true

  2. 客户端TNSPING通 连接出现ORA-12514错误

    ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务,这是一个经常遇到的问题,可以按照以下步骤一步步解决 1.使用tnsping检测 tnsping可判断出以下两点(1)判断网络 ...

  3. 阿里fastjson解析

    解析案例 String object="{total=1, rows=[{_Account=3646808, UserID=131514, Mt4Name=SewwoaIQQS, Serve ...

  4. Ninject 初步 -Getting Started with Ninject 精通ASP-NET-MVC-5-弗瑞曼 Listing 6-10

  5. 小白学Java:File类

    目录 小白学Java:File类 不同风格的分隔符 绝对与相对路径 File类常用方法 常用构造器 创建方法 判断方法 获取方法 命名方法 删除方法 小白学Java:File类 我们可以知道,存储在程 ...

  6. OpenCV2.4.13+VS2013配置方法

    先说一下vc几代表的对应版本: vc8 = Visual Studio 2005 vc9 = Visual Studio 2008 vc10 = Visual Studio 2010 vc11 = V ...

  7. STM32学习笔记:基础例子

    本例子代码参考了STM32库开发实战指南中的代码,由于使用的板子是尚学STM32F103ZET6,为了配合板上已有资源,也参考了其配套代码.为了便于书写文本,我尽量将代码都写到了一个文件中,这种方式是 ...

  8. xpath写法汇总(适用于appium、robotframework)

    1.移动端应用,content-des包含“订单号” xpath=//android.view.View[contains(@content-desc,"订单号:")] 2.移动端 ...

  9. learn more ,study less(二):整体性学习技术(上)

    前言:在学习整体性学习概念时,一个很好的方法是把它比喻成下棋,首先你要了解下棋的 基本规则和基本目标,本书第一部分可以看做是介绍关于整体性学习的一整套规则和目标. 一旦你理解了下棋的基本规则,你就要开 ...

  10. Python程序打包EXE遇到的各种坑

    废话不多说,反正我现在还没成功,不过我记录一下遇到的坑! 1:安装相关库太慢 解决办法:离线安装 在一大堆教程中,要安装好几个库,但是有些库用pip在线安装一直卡死(看不到进度条,就当卡死吧),这个问 ...