.net core 使用windows版redis
在项目中为了减少程序占用内存(将结果保存在全局变量里面,会占用内存),要求使用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的更多相关文章
- MS Open Tech 技术团队构建可靠的Windows版Redis
可靠的Windows版Redis 副标题: 评论更精彩,教你怎么解决64位Windows版Redis狂占C盘的问题. MS Open Tech 技术团队最近花了很多时间来测试最新构建的Windows版 ...
- 硬盘杀手!Windows版Redis疯狂占用C盘空间!
关键词:Redis占用C盘,Windows Redis,64位Windows版Redis疯狂占用C盘空间,redis启动后创建RedisQFolk_****.dat文件.redis-server.ex ...
- 硬盘杀手!Windows版Redis疯狂占用C盘空间【转】
[问题的原因] Windows版Redis启动后,会在C盘自动创建一个很大的文件,C:\Users\{你的用户名}\AppData\Local\Redis\RedisQFolk_****.dat 我们 ...
- 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 ...
- 可靠的Windows版Redis
副标题: 评论更精彩,教你怎么解决64位Windows版Redis狂占C盘的问题. MS Open Tech 技术团队近期花了非常多时间来測试最新构建的Windows版Redis(可在 MS Open ...
- 使用 Redis 源码编译发布 Windows 版 Redis For Windows 发行包
Redis 是个高性能的键值数据库,现在日常项目开发过程中,目前个人开发项目基本都会用到 Redis,主要是用来做 缓存 和 分布式锁 的底层支持,个人喜欢用 .NET 技术体系,所以一般部署也是用 ...
- 下载安装windows版Redis
链接 https://github.com/MicrosoftArchive/redis/releases 选择版本下载 在redis目录打开cmd命令输入 redis-server.ex ...
- Windows版Redis主从配置
一.下载 从github上下载Redis的zip包,地址:https://github.com/MicrosoftArchive/redis/releases Redis本身不支持windows,这是 ...
- windows版redis报错:本地计算机上的Redis服务启动后停止
解决 1.如果需要临时启动Redis 使用命令:redis-server.exe redis.windows.conf --maxheap 200m 说明:200m是指定最大堆内存是200m, ...
随机推荐
- cpu和gpu关于图像的分工
cpu: 图像IO导入: 图像生成: 部分图片解码: gpu: 几何图像表示: 几何图像组合等处理: 部分格式图像解码: 图像的光学.几何学操控:
- TCP (传输控制协议)
http://baike.baidu.com/item/TCP/33012?fr=aladdin TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可 ...
- C/C++读取一行
C语言 1. char buf[80]={0}; gets(buf); //可以读取空格, 回车结束输入 2. char buf[10] = {0}; scanf("%[^\n] ...
- VPP(Vector Packet Processing)浅析
VPP简介 VPP(Vector Packet Processing)是思科旗下的一款可拓展的开源框架,提供容易使用的.高质量的交换.路由功能 特点:高性能.运行在普通的cpu上. 优点:高性能.技术 ...
- 前端基础-CSS是什么?
阅读目录 一. 什么是CSS 二. 为何要用CSS 三. 如何使用CSS 一. 什么是CSS CSS全称Cascading Style Sheet层叠样式表,是专用用来为HTML标签添加样式的. 样式 ...
- git 设置只输入一次用户名和密码
https方式每次都要输入密码,非常不爽 按照如下设置可只输入一次 记住密码(默认15分钟): git config --global credential.helper cache 自己定义时间(一 ...
- 如何通过github上传项目并在readme.md中展示图片二维码
将本地项目上传至github 第一步:git init (创建仓库) 第二步:git add README.md (添加项目)git add * 第三步:git commit -m &qu ...
- centos7开机不进入图形界面
centOS7开机不进入图形界面设置和centOS6系列不同的是,不再是直接改文件中的5就可以了. centOS7设置如下: systemctl get-default //获取当前的默认tar ...
- 阿里云CentOS7部署ASP.NET Core
本文主要介绍了阿里云CentOS7下如何成功的发布ASP.Core应用并使用nginx进行代理, 并对所踩的坑加以记录; 环境.工具.准备工作 服务器:阿里云64位CentOS 7.4.1708版本; ...
- ionic 环境搭建
1.安装nodejs (8.4.0) 下载地址 https://nodejs.org/zh-cn/ 2.Java jdk 版本号 jdk1.8.0_121 3.安装 cordova npm ins ...