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. maven常用的远程仓库地址

    <mirror> <id>nexus-aliyun</id> <name>Nexus aliyun</name> <url>ht ...

  2. java面试| 线程面试题集合

    集合的面试题就不罗列了,基本上在深入理解集合系列已覆盖 「 深入浅出 」java集合Collection和Map 「 深入浅出 」集合List 「 深入浅出 」集合Set 这里搜罗网上常用线程面试题, ...

  3. 【JQ】 validate验证表单时多个name相同的元素的解决办法

    使用jQuery.validate插件http://jqueryvalidation.org/,当节点的name相同时候,脚本特意忽略剩余节点,导致所有相关节点的errMsg都显示在第一个相关节点上. ...

  4. 18年第一弹射 和网络有关; 艾曲塞嗯诶系列篇 two

    35: 华为AR G3系列路由器可以通过FTP和TFTP更新系统文件,AR G3系列路由器可以作为FTP Client , FTP Server ,TFTP Client 36: 两台路由器间通过串口 ...

  5. 缓冲区溢出实例(二)--Linux

    原理:crossfire 1.9.0 版本接受入站 socket 连接时存在缓冲区溢出漏洞. 工具: 调试工具:edb: ###python在漏洞溢出方面的渗透测试和漏洞攻击中,具有很大的优势   实 ...

  6. 对于kvm配置ssh

    首先我们要让自己的机器开启ssh服务 首先更新源 sudo apt-get update 安装ssh服务 sudo apt-get install openssh-server 检测是否已启动 ps ...

  7. initramfs打包集成rootfs到image镜像及linux rootfs的正常启动

    最近的项目中需要在仿真机haps及VDK上集成rootfs,中间遇到一些问题,在此整理记录以备忘. rootfs里面集成的busybox版本1.29.3 (buildroot环境中自带) kernel ...

  8. Boyer-Moore 算法 Leetcode169

    Boyer-Moore 算法 Leetcode169 一.题目 169. 多数元素 给定一个大小为 n 的数组,找到其中的多数元素.多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素. 你可以假 ...

  9. Java 设置Excel自适应行高、列宽

    在excel中,可通过设置自适应行高或列宽自动排版,是一种比较常用的快速调整表格整体布局的方法.设置自适应时,可考虑2种情况: 1.固定数据,设置行高.列宽自适应数据(常见的设置自适应方法) 2.固定 ...

  10. 用JavaScript完成页面自动操作

    在之前的一篇<JavaScript实现按键精灵>中曾记录了几个事件对象,本文将会对它们进行一次实战,要完成的动作包括滚动.点击和翻页. 一.滚动 滚动是通过修改容器元素的scrollTop ...