C# Redis安装 使用教程
前言:lz自打工作以来第一次遇到电脑问题需要重装系统,全盘格式化。打击是沉痛的。特别伤。 然后需要重新在本地部署 redis。这是写这篇博客的原因。希望对大家有所帮助,安装资源和引用DLL可以引用 只用于学习 ( windows环境安装 )
一:安装Redis
首先我们需要在本地或是服务器安装Redis。安装包可以去redis官网下载,去Gethub上down 我这里直接给我的百度云
链接:https://pan.baidu.com/s/1WJ48XMaHOmgb1J0KaQkdEw 密码:xjf4 下载后解压

本地的话 你可以直接打开 redis-server.exe这个应用程序。也可以打开cmd命令 然后把路径换成你redis文件的路径 我的是放在 c:\redis 可以跟我的来,方便搬运代码 切换文件路径 cd

然后我们启动redis服务,运行 redis-server.exe redis.windows.conf

出现这个界面说明OK了,这个窗口别关 如果关闭了 重新来一遍
继续,再打开一个cmd窗口,切换到redis目录下面

这里解释一下这个 127.0.0.1 是本地访问,相当于localhost 6379是redis默认的端口
继续,redis是存储键值对的所以我们测试一下

set一个 key value
get 一个key
机制就是把数据set 到 redis的数据库里,就是我们说的缓存 用的时候在get取值
接下来我们下载一个redis可视化工具,作用是相当于我们平时使用的数据库 可以去官网上下载,可以我直接上资源,方便 链接:https://pan.baidu.com/s/1K7QtxSVV_15kxP8zkEvIng 密码:k4f8
解压文件,安装成功 打开

字面意思,很简单吧

name 测试阶段随便写 HOST呢 就是主机IP地址 链接上之后 打开我们的DB

crtest666 wuchen 这个键值队是成功添加了的 (关于redis key是名字无所谓 value可以是列表,集合,自由使用,今天先不讲这个)
二:C# 中使用redis(查找,增加,删除的使用)
首先我们需要添加redis的引用。nuget包 搜索redis第一个就是。--StackExchange.Redis
根据运行的环境不同。还需要以下dll
1.ServiceStack.Common.dll
2.ServiceStack.Interfaces.dll
3.ServiceStack.Text.dll
可以去Gethub上去down, https://github.com/ServiceStack/ServiceStack.Redis 真的慢
博主百度云资源: 链接:https://pan.baidu.com/s/1gQLJlIcHhZtPikIgFHnHxA 密码:scqt
Lg:本博一直用win10,按理说只需要这些DLL的 现在装成win7,发现不行了 后来我在Nuget包中添加 RedisHelper,(现在好像直接叫做Redis了,看下备注说明确认一下)

这里举个很简单的使用redis的例子
添加一个控制台应用程序
然后在主程序类 program.cs 代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace crtest
{
class Program
{
/// <summary>
/// 基无尘 18-8-31
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
Console.WriteLine("Redis写入缓存:wuchengtest"); //添加 RedisCacheHelper.Add("wuchen", "jiwuchen", DateTime.Now.AddDays()); Console.WriteLine("Redis获取缓存:crtest666");//查找
string str3 = RedisCacheHelper.Get<string>("crtest666");
Console.WriteLine(str3); RedisCacheHelper.Remove("hellow");//删除
string str = RedisCacheHelper.Get<string>("hellow");//查看是否删除成功
Console.WriteLine(str == null ? "未找到" : str);
Console.ReadKey();
}
}
}
然后添加一个帮助类 作用类似于我们常用的DbHelper
using ServiceStack.Redis;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace crtest
{
public class RedisCacheHelper
{
private static readonly PooledRedisClientManager pool = null;
private static readonly string[] redisHosts = null;
public static int RedisMaxReadPool = ;
public static int RedisMaxWritePool = ; static RedisCacheHelper()
{
var redisHostStr = "127.0.0.1:6379"; if (!string.IsNullOrEmpty(redisHostStr))
{
redisHosts = redisHostStr.Split(','); if (redisHosts.Length > )
{
pool = new PooledRedisClientManager(redisHosts, redisHosts,
new RedisClientManagerConfig()
{
MaxWritePoolSize = RedisMaxWritePool,
MaxReadPoolSize = RedisMaxReadPool,
AutoStart = true
});
}
}
} #region Add
public static void Add<T>(string key, T value, DateTime expiry)
{
if (value == null)
{
return;
} if (expiry <= DateTime.Now)
{ Remove(key); return;
} try
{
if (pool != null)
{
using (var r = pool.GetClient())
{
if (r != null)
{
r.SendTimeout = ;
r.Set(key, value, expiry - DateTime.Now);
}
}
}
}
catch (Exception ex)
{
string msg = string.Format("{0}:{1}发生异常!{2}", "cache", "存储", key);
} } public static void Add<T>(string key, T value, TimeSpan slidingExpiration)
{
if (value == null)
{
return;
} if (slidingExpiration.TotalSeconds <= )
{
Remove(key); return;
} try
{
if (pool != null)
{
using (var r = pool.GetClient())
{
if (r != null)
{
r.SendTimeout = ;
r.Set(key, value, slidingExpiration);
}
}
}
}
catch (Exception ex)
{
string msg = string.Format("{0}:{1}发生异常!{2}", "cache", "存储", key);
}
} public static T Get<T>(string key)
{
if (string.IsNullOrEmpty(key))
{
return default(T);
} T obj = default(T); try
{
if (pool != null)
{
using (var r = pool.GetClient())
{
if (r != null)
{
r.SendTimeout = ;
obj = r.Get<T>(key);
}
}
}
}
catch (Exception ex)
{
string msg = string.Format("{0}:{1}发生异常!{2}", "cache", "获取", key);
} return obj;
}
#endregion public static void Remove(string key)
{
try
{
if (pool != null)
{
using (var r = pool.GetClient())
{
if (r != null)
{
r.SendTimeout = ;
r.Remove(key);
}
}
}
}
catch (Exception ex)
{
string msg = string.Format("{0}:{1}发生异常!{2}", "cache", "删除", key);
} } public static bool Exists(string key)
{
try
{
if (pool != null)
{
using (var r = pool.GetClient())
{
if (r != null)
{
r.SendTimeout = ;
return r.ContainsKey(key);
}
}
}
}
catch (Exception ex)
{
string msg = string.Format("{0}:{1}发生异常!{2}", "cache", "是否存在", key);
} return false;
}
}
}
OK,生成一下 然后运行看看效果

OK,我们去redis-server上看看效果,也可以用上面的控制台来get 看看效果(cmd命令窗口自始至终都是开着的)

可以看到是成功添加的。好啦
通过简单的两句代码,慢慢发现编程的乐趣
C# Redis安装 使用教程的更多相关文章
- Redis安装部署教程
		
1)下载 redis-3.2.9.tar.gz 2)用ssh工具连接目录主机,在命令窗口输入:mkdir -p /opt/redis创建redis文件夹 3)通过WinSCP工具将redis-3.2. ...
 - linux下redis安装运行教程——redis系列
		
天没降大任于我,照样苦我心智,劳我筋骨. 安装运行的过程 由于官网太慢,csdn里的资源又要钱,所以呢,只能使用我自己本地以前下载的陈年..哦不,3.xredis安装包 资源已经放到百度云,需要的可以 ...
 - Linux下Redis安装使用教程
		
https://redis.io/download 第一步:安装redis需要在有c语言的编译环境下,执行命令安装c语言环境: yum install gcc-c++ https://blog.csd ...
 - redis安装使用教程
		
一:安装redis 1.下载redis并安装 $wget http://redis.googlecode.com/files/redis-2.2.10.tar.gz $tar zvxf redis-2 ...
 - 【Docker】Redis 安装使用教程
		
1.安装 1.1 拉取镜像 docker pull redis redis:4.0 1.2 创建redis容器名"redistest1",并开启持久化 docker run -d ...
 - linux +redis 安装 +mongo   安装
		
Linux 下redis安装 本教程使用的最新文档版本为 2.8.17,下载并安装: $ wget http://download.redis.io/releases/redis-2.8.17.tar ...
 - Redis安装教程
		
1. Linux下Redis安装教程 (1)安装 #tar xf redis-2.6.14.tar.gz #cd redis-2.6.14 #make #make install (2)配置 修改re ...
 - Redis安装教程及可视化工具RedisDesktopManager下载安装
		
Redis安装教程: 1. Windows下安装教程: 下载:https://github.com/MSOpenTech/redis/releases Redis 支持 32 位和 64 位.这个需要 ...
 - [ecmagent][redis学习][1初识redis] redis安装+redis快速教程+python操作redis
		
# redis安装 # redis安装教程 -- 服务器(ubuntu)安装redis服务 sudo apt-get install redis-server -- 源码安装 -- $ wget ht ...
 
随机推荐
- 三级菜单,可以退出到上一级菜单和全部退出(low版本)
			
menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, '汽车之家':{}, 'youk ...
 - <笔记>三码合一
			
讲求三码合一,何为三码合一?(这里我用UTF8讲例子) 就是页面编码,文档编码,数据库编码要统一一种格式,切记不可有的是GBK,有的是UFT8 页面编码:也就是用header 函数申明:header( ...
 - mysql中删除重复记录,只保留一条
			
表结构如下: mysql> desc test1; +--------------+------------------+------+-----+---------+------------- ...
 - SQL参数放在where前后的区别
			
本博客记录一个细节,在使用sql left join时候,参数放在left join后面当条件,还是放在where后的区别 给出两条SQL: tt.book_type = 'TIPS_TYPE',放在 ...
 - Impl模式实现之注意内联
			
最近学习muduo源码时,对于内联函数有了更深刻的认知. 内联(inline)在代码执行方面具有优势,但是有时使用不当,或者稍微不注意,就会造成编译错误. 以下将通过Impl实现说明一二: 头文件: ...
 - JavaScript状态模式及状态机模型
			
这是一篇,我自己都看不完的文章... 文章大体就两部分: 状态模式的介绍 状态机模型的函数库javascript-state-machine的用法和源码解析 场景及问题背景: 我们平时开发时本质上就是 ...
 - [Leetcode]895.最大频率栈
			
Problem 实现 FreqStack,模拟类似栈的数据结构的操作的一个类. FreqStack 有两个函数: push(int x),将整数 x 推入栈中. pop(),它移除并返回栈中出现最频繁 ...
 - sql中base64解码、译码
			
1.5.6版本及之后的版本的base64 主要就是两个MySQL内部函数to_base64和from_base64,使用也很简单,如下: 1)先查看MySQL的版本:mysql> select ...
 - 橙色优学:Java编程怎么提升技术,Java编程思维至关重要
			
橙色优学了解做为程序员,一旦进入技术行列,就开启了持续学习的道路,更迭迅速的互联网时代,技术自然也是一代一代的更新,在技术进阶的道路上,要不断吸收新的想法和技术知识. 牛逼的人总是让人羡慕,但如何才能 ...
 - Java核心技术及面试指南 面向对象部分的面试题总结以及答案
			
问题2.7.1,开放性问题,说一下你对面向对象思想的了解. 要点1,先说基础概念,比如面向对象思想包括封装.继承.多态,然后说些语法,比如可以通过extends继承类.通过implement来实现接口 ...