在项目中为了减少程序占用内存(将结果保存在全局变量里面,会占用内存),要求使用redis。开始了爬坑的过程。o(╥﹏╥)o

c#操作redis 基本就这3中情况:

ServiceStack.Redis 是商业版,免费版有限制;如果大量对redis 读写 ,要花钱买(不知道老板批不批o(╥﹏╥)o),说使用3.0版本(回退版本,之前版本不收费),然后发布之后运行会出bug,想死

StackExchange.Redis 是免费版,但是内核在 .NETCore 运行有问题经常 Timeout,暂无法解决;这个是最坑的,因为本地测试不出任何问题,一发布之后运行,会报很多的bug(访问的是windows版redis,linux不清楚)。

最后找到了亲爱的这个:CSRedis,完美(不知道为啥,初步安装有问题,卸了重装就好了,我他妈也不知道为什么,你离成功只差一遍重装)

CSRedis于2016年开始支持.NETCore一直跌代至今,实现了低门槛、高性能,和分区高级玩法的.NETCore redis-cli SDK;

下面是封装的访问代码:

using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Runtime.Serialization.Formatters.Binary; using System.Collections;
using System.Runtime.Serialization;
using Newtonsoft.Json;
using CSRedis; namespace DateCore.Utils
{
public class CSredisHelper
{
//var csredis = new CSRedis.CSRedisClient("127.0.0.1:6379,password=123,defaultDatabase=13,poolsize=50,ssl=false,writeBuffer=10240,prefix=key前辍"); private static string connection = Convert.ToString(AppConfigurtaionServices.Configuration["redis:Url"]);
private static int port = Convert.ToInt32(AppConfigurtaionServices.Configuration["redis:port"]); private static CSRedisClient redisClient = new CSRedisClient(connection + ":" + port+ "defaultDatabase=0,poolsize=50,ssl=false,writeBuffer=10240,prefix=key前辍"); /// <summary>
/// 增加/修改 如果保存的是对象或数组,序列化后保存
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
/// <returns></returns>
public bool SetValue<T>(string key, T value)
{ Type type = typeof(T);
if (type != typeof(String) && (type.IsClass || type.IsArray))
{ //String是特殊的引用类型,我也很难受 var str = JsonConvert.SerializeObject(value);
return redisClient.Set(key, str);//, TimeSpan.FromMinutes(1)
}
else //
{ return redisClient.Set(key, Convert.ToString(value));
} } public bool SetHashValue(string key, string field, string value)
{ return redisClient.HSet(key, field, value); }
public string GetHashValue(string key, string field)
{
return redisClient.HGet(key, field);
} /// <summary>
/// 查询 获取对象或数组
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public T GetValue<T>(string key)
{
Type type = typeof(T);
T result = default(T);
var value = redisClient.Get(key);
result = JsonConvert.DeserializeObject<T>(value);
return result; }
//泛型获取基本类型,像int,decimal
public T GetStringValue<T>(string key)
{ return redisClient.Get<T>(key);
} /// <summary>
/// 释放资源
/// </summary>
/// <param name="key"></param>
/// <returns></returns> public void dispose()
{ redisClient.Dispose(); }
///删除所有分区的所有数据库数据
public void Deleteall()
{
redisClient.NodesServerManager.FlushAll();
}
}
}

  访问方法:

namespace DateCore.Repository
{
public class BeginT : IBeginT
{ private static CSredisHelper Redis = new CSredisHelper();
public void Test()
{ Redis.SetValue<string>("TruckDownSchedule", "test");
Redis.SetValue<int>("int", );
Redis.GetStringValue<string>("TruckDownSchedule");
Redis.GetStringValue<int>("int"); }
}
}

具体使用方法请参考以下路径:https://github.com/2881099/csredis

参考文档:http://www.cnblogs.com/kellynic/p/9803314.html

只是因为分享而传播,我因为您的点赞而快乐。

.net core 使用windows版redis的更多相关文章

  1. MS Open Tech 技术团队构建可靠的Windows版Redis

    可靠的Windows版Redis 副标题: 评论更精彩,教你怎么解决64位Windows版Redis狂占C盘的问题. MS Open Tech 技术团队最近花了很多时间来测试最新构建的Windows版 ...

  2. 硬盘杀手!Windows版Redis疯狂占用C盘空间!

    关键词:Redis占用C盘,Windows Redis,64位Windows版Redis疯狂占用C盘空间,redis启动后创建RedisQFolk_****.dat文件.redis-server.ex ...

  3. 硬盘杀手!Windows版Redis疯狂占用C盘空间【转】

    [问题的原因] Windows版Redis启动后,会在C盘自动创建一个很大的文件,C:\Users\{你的用户名}\AppData\Local\Redis\RedisQFolk_****.dat 我们 ...

  4. Windows版Redis如何使用?(单机)

    使用Windows版Redis 1.下载Windows版本的Redis 2.在redis目录里创建redis.conf ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...

  5. 可靠的Windows版Redis

    副标题: 评论更精彩,教你怎么解决64位Windows版Redis狂占C盘的问题. MS Open Tech 技术团队近期花了非常多时间来測试最新构建的Windows版Redis(可在 MS Open ...

  6. 使用 Redis 源码编译发布 Windows 版 Redis For Windows 发行包

    Redis 是个高性能的键值数据库,现在日常项目开发过程中,目前个人开发项目基本都会用到 Redis,主要是用来做 缓存 和 分布式锁 的底层支持,个人喜欢用 .NET 技术体系,所以一般部署也是用 ...

  7. 下载安装windows版Redis

    链接       https://github.com/MicrosoftArchive/redis/releases 选择版本下载 在redis目录打开cmd命令输入 redis-server.ex ...

  8. Windows版Redis主从配置

    一.下载 从github上下载Redis的zip包,地址:https://github.com/MicrosoftArchive/redis/releases Redis本身不支持windows,这是 ...

  9. windows版redis报错:本地计算机上的Redis服务启动后停止

    解决 1.如果需要临时启动Redis 使用命令:redis-server.exe   redis.windows.conf   --maxheap 200m 说明:200m是指定最大堆内存是200m, ...

随机推荐

  1. 2、Sublime Text 3 快捷键(实用,快速换行等)

    选择类 Ctrl+D :选中光标所占的文本,继续操作则会选中下一个相同的文本. Alt+F3:选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑.举个栗子:快速选中并更改所有相同的变量名.函 ...

  2. Zookeeper学习之路 (一)初识

    本文引用自 http://www.cnblogs.com/sunddenly/p/4033574.html 引言 Hadoop 集群当中 N 多的配置信息如何做到全局一致并且单点修改迅速响应到整个集群 ...

  3. 随手练——洛谷-P1008 / P1618 三连击(暴力搜索)

    1.普通版 第一眼看到这个题,我脑海里就是,“我们是不是在哪里见过~”,去年大一刚学C语言的时候写过一个类似的题目,写了九重循环....就像这样(在洛谷题解里看到一位兄台写的....超长警告,慎重点开 ...

  4. python——reuqests模块使用pip安装始终不成功

    使用pip install xxx 来安装某一库. 使用 pip uninstall xxx 来卸载. 而pip 的也可以采用常见的两种安装方法 在centos系列下 使用sudo yum insta ...

  5. springboot项目用gradle打jar包

    C:\1_work_files\workspace_sts\HR\psn\build\libs

  6. Windows安装openssl

    Windows下有两种方式安装openssl,第一种是采用安装包方式进行安装,第二种是采用编译源码方式进行安装.这里采用第一种方式,简单,直接. windows的openssl安装包的下载地址为:ht ...

  7. Oracle数据库常用命令(持续更新)

    1. 查询当前用户所有的表 select * from user_tables; 2. 查询当前用户能访问的表 select * from all_tables; 3. 获取表字段 select * ...

  8. .Net core 使用NPOI 直接导入Excel到数据库(即不先将Excel保存到服务器再读取文件到数据库)

    /// <summary> /// 导入信息 /// </summary> /// <param name="file"></param& ...

  9. MySQL初体验--安装MySQL

    操作系统版本:redhat 6.7 64位 [root@mysql ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server releas ...

  10. ORACLE逐行累计求和方法(OVER函数)

    1.RANK ( ) OVER ( [QUERY_PARTITION_CLAUSE] ORDER_BY_CLAUSE ) DENSE_RANK ( ) OVER ( [QUERY_PARTITION_ ...