1.服务器部署好redis后 在项目里边添加 StackExchange.Redis.dll (可以去nuget下载)

2.添加SERedisHelper.cs  里边有  对应的缓存的相关方法

using Newtonsoft.Json;
using StackExchange.Redis;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace koala.dataaccess.nosql
{
/// <summary>
/// Redis操作类
/// </summary>
public class SERedisHelper
{
private static string _conn = ConfigurationManager.AppSettings["SERedis"].ToString(); #region string类型
/// <summary>
/// 根据Key获取值
/// </summary>
/// <param name="key">键值</param>
/// <returns>System.String.</returns>
public static string StringGet(string key)
{
try
{
using (var client = ConnectionMultiplexer.Connect(_conn))
{
return client.GetDatabase().StringGet(key);
}
}
catch (Exception)
{
return null;
}
} /// <summary>
/// 批量获取值
/// </summary>
public static string[] StringGetMany(string[] keyStrs)
{
var count = keyStrs.Length;
var keys = new RedisKey[count];
var addrs = new string[count]; for (var i = 0; i < count; i++)
{
keys[i] = keyStrs[i];
}
try
{
using (var client = ConnectionMultiplexer.Connect(_conn))
{
var values = client.GetDatabase().StringGet(keys);
for (var i = 0; i < values.Length; i++)
{
addrs[i] = values[i];
}
return addrs;
}
}
catch (Exception)
{
return null;
}
} /// <summary>
/// 单条存值
/// </summary>
/// <param name="key">key</param>
/// <param name="value">The value.</param>
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
public static bool StringSet(string key, string value)
{ using (var client = ConnectionMultiplexer.Connect(_conn))
{
return client.GetDatabase().StringSet(key, value);
}
} /// <summary>
/// 批量存值
/// </summary>
/// <param name="keysStr">key</param>
/// <param name="valuesStr">The value.</param>
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
public static bool StringSetMany(string[] keysStr, string[] valuesStr)
{
var count = keysStr.Length;
var keyValuePair = new KeyValuePair<RedisKey, RedisValue>[count];
for (int i = 0; i < count; i++)
{
keyValuePair[i] = new KeyValuePair<RedisKey, RedisValue>(keysStr[i], valuesStr[i]);
}
using (var client = ConnectionMultiplexer.Connect(_conn))
{
return client.GetDatabase().StringSet(keyValuePair);
}
} #endregion #region 泛型
/// <summary>
/// 存值并设置过期时间
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="key">key</param>
/// <param name="t">实体</param>
/// <param name="ts">过期时间间隔</param>
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
public static bool Set<T>(string key, T t, TimeSpan ts)
{
var str = JsonConvert.SerializeObject(t);
using (var client = ConnectionMultiplexer.Connect(_conn))
{
return client.GetDatabase().StringSet(key, str, ts);
}
} /// <summary>
///
/// 根据Key获取值
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="key">The key.</param>
/// <returns>T.</returns>
public static T Get<T>(string key) where T : class
{
using (var client = ConnectionMultiplexer.Connect(_conn))
{
var strValue = client.GetDatabase().StringGet(key);
return string.IsNullOrEmpty(strValue) ? null : JsonConvert.DeserializeObject<T>(strValue);
}
}
#endregion
}
}

  

Redis(三)的更多相关文章

  1. 搭建Redis三主三从集群

    Redis三主三从集群规划 10.0.128.19   使用端口 7000  7001 10.0.128.22   使用端口 7002  7003 10.0.128.23   使用端口 7004  7 ...

  2. redis(三)redis+Keepalived主从热备秒级切换

    一 简介 安装使用centos 5.10 Master 192.168.235.135 Slave 192.168.235.152 Vip 192.168.235.200 编译环境 yum -y in ...

  3. 高可用Redis(三):Hash类型

    1.哈希类型键值结构 哈希类型也是key-value结构,key是字符串类型,其value分为两个部分:field和value 其中field部分代表属性,value代表属性对应的值 上面的图里,us ...

  4. Jedis连接Redis三种模式

    这里说的三种工作模式是指: 1.单机模式 2.分片模式 3.集群模式(since 3.0) 说明图详见以下: 使用单机模式连接: private String addr="192.168.1 ...

  5. Redis(三):windows下Redis的安装配置以及注意事项

    一.下载windows版本的Redis 去官网找了很久,发现原来在官网上可以下载的windows版本的,现在官网以及没有下载地址,只能在github上下载,官网只提供linux版本的下载 官网下载地址 ...

  6. Linux-NoSQL之Redis(三)

    一.Redis数据常用操作 1.string常用操作 set key1  aminglinux get key1 set key1  aming //一个key对应一个value,多次赋值,会覆盖前面 ...

  7. python实现redis三种cas事务操作

    cas全称是compare and set,是一种典型的事务操作. 简单的说,事务就是为了存取数据库中同一数据时不破坏操作的隔离性和原子性,从而保证数据的一致性. 一般数据库,比如MySql是如何保证 ...

  8. 配置redis三主三从

    主从环境 centos7.6 redis4.0.1 主 从 192.168.181.139:6379 192.168.181.136:6379 192.168.181.136:6380 192.168 ...

  9. k8s 上部署 Redis 三主三从 集群

    目录 介绍 为什么要使用Redis? 什么是Redis群集? 在Kubernetes中部署Redis集群 从 GitHub 上下载: 创建pv 创建statefulset 创建service 初始化 ...

  10. redis三种模式对比

    模式类型 主从模式(redis2.8版本之前的模式).哨兵sentinel模式(redis2.8及之后的模式).redis cluster模式(redis3.0版本之后) 主从模式原理 同Mysql主 ...

随机推荐

  1. MyBatis基本配置和实践(二)

    一.前言 从上一篇文章的junit单元测试环节可以看到,每一次调用MyBatis需要先加载SqlMapConfig.xml文件,再通过SqlSessionFactoryBuilder创建SqlSess ...

  2. maven(15),快照与发布,RELEASE与SNAPSHOT

     发布RELEASE 用户A将代码打包发布到RELEASE仓库,具体操作参考上篇文章.用户B使用时,需要在pom.xml添加JAR包的依赖坐标.如果用户A将版本从1.0升级为2.0,用户B使用时也 ...

  3. oracle 大表 已有大数据量 建索引防卡 nologging

    create index idx_th_user_info_fans_name on th_user_info(fans_name) nologging;

  4. python笔记8-多线程threading之封装式

    执行函数 1.先写一个执行函数,用来实现做某件事情,不同的人吃火锅用一个参数people代替. # coding=utf-8 import threading import time def chiH ...

  5. MP4个人制作

  6. 理解活在Iphone中的那些App (三)

    App的生存环境之宏观环境 从用户需求变成一个产品形体的App,是一个曲折的过程.主要的过程大概如此,分析用户需求,从用户需求中提炼出比较重要的部分,然后结合自己的创意,将其转化成产品.投放市场,接受 ...

  7. 11GR2 中的常见 RMAN 问题

    版权声明:本文为博主原创文章,欢迎转载验证并评论,谢谢! https://blog.csdn.net/li70803/article/details/34104511 本文是Oracle suppor ...

  8. Guava包学习--Table

    Table,顾名思义,就好像HTML中的Table元素一样,其实就是行+列去确定的值,更准确的比喻其实就是一个二维矩阵. 其实它就是通过行+列两个key去找到一个value,然后它又containsv ...

  9. 绕过disable_functions执行命令实验

    绕过disable_functions执行命令实验 看下disable函数,所有命令函数都被禁用: 编译64位共享库: 命令成功执行: 参考链接: https://www.freebuf.com/ar ...

  10. 使用arcpy替换栅格数据异常

    使用arcpy替换mxd中的栅格图层数据源时,发现导出的图片异常. 修改代码把修改后的mxd保存后发现修改后的数据源不是我传入参数的数据源 比如我设置的参数是 “2019_3_2_2f8091e2d4 ...