澳门金莎娱乐网站缓存工厂之Redis缓存,Redis缓存

作者: 数据库信息  发布:2019-12-23

上边来标准共享前几日的稿子吧:

这两天未有依照布置共享本事博文,首即便去医务所了,这里意气风发想到在卫生所阅历的各个,作者真正有话要说;卫生所里的医生曾经被吹牛为美观 仁慈 可亲的Smart,在经受5天左右互为接触后不能不让感叹;遇见的有些人士在登记队伍容貌宛若长龙的时候坐在收取工资窗口玩手提式有线话机,理由是和煦是换班的差几分钟才上班吧;遇见态度最为恶劣的首席试行官医务职员,做咨询多少个难点声音随时升高并说道中带走讽刺话语;还恐怕有别的多少个遇见哈哈这里就非常少说了,恐怕是有个别医务卫生人士感觉多你个不菲,笔者好多客源,所以个别是这种姿态呢,照旧市医务室真不知道怎么混进去的。

。搭建Redis服务端,并用顾客端连接

 

。封装缓存父类,定义Get,Set等常用方法

如上是个体的视角,上面来规范分享不久前的小说吧:

。定义RedisCache缓存类,执行Redis的Get,Set方法

。搭建Redis服务端,并用顾客端连接

。布局出缓存工厂调用方法

。封装缓存父类,定义Get,Set等常用方法

上面不追求虚名的来享受:

。定义RedisCache缓存类,执行Redis的Get,Set方法

。搭建Redis服务端,并用客户端连接

。布局出缓存工厂调用方法

先是,咋们去那个地址下载安装文件,笔者这边的本子是:redis-2.4.5-win32-win64里边有叁拾叁人和陆十人的实践文书,作者那边服务器是陆拾叁人的下面给出截图和用到有的程序的认证:

 

澳门金莎娱乐网站 1

上面足履实地的来享受:

澳门金莎娱乐网站 ,今日,咋们直接能够用鼠标双击redis-server.exe这些应用程序,那样就开荒了redis服务窗体(您也足以下载贰个windows服务承载器,把redis服务运作在windows的服务中,就无须操心每一回关闭redis服务原野绿窗体后不或然访谈redis了),运营起来是那样:

。搭建Redis服务端,并用客商端连接

澳门金莎娱乐网站 2

率先,咋们去那个地方下载安装文件,作者那边的版本是:redis-2.4.5-win32-win64内部有三十六个人和陆16位的实践文书,小编那边服务器是63位的上面给出截图和用到有个别程序的证实:

有浅黄框的新闻就象征成功了,这里redis服务监听的端口私下认可是6379,要改善端口或许越多的结构音讯请找到redis.conf配置文件,具体铺排音信介绍能够来那边

澳门金莎娱乐网站 3

再来,张开客户端连接服务端,咋们退到64bit文书夹的目录中,鼠标移到64bit文本夹上还要安装Shift键,同不常候点击鼠标的右键,选中"在那处展开命令窗口"那样火速步入到了该文件夹的cmd命令窗口中(当然区别的操作系统不一致,这里演示的是windows的操作;还会有此外步向的艺术这里不做牵线,因为个人感到那是最快的);然后,在命令窗口中录入redis-cli.exe -h localhost -p 6385回车来访谈服务端,效果图:

前段时间,咋们直接可以用鼠标双击redis-server.exe这一个应用程序,那样就开荒了redis服务窗体(您也能够下载一个windows服务承载器,把redis服务运维在windows的劳务中,就不用顾虑每一趟关闭redis服务水米红窗体后不能够访谈redis了),运营起来是这么:

澳门金莎娱乐网站 4

澳门金莎娱乐网站 5

再来看下服务端窗体截图:

有青黛色框的音讯就意味着成功了,这里redis服务监听的端口暗中同意是6379,要校订端口大概越来越多的配备音讯请找到redis.conf配置文件,具体安插消息介绍能够来这里

澳门金莎娱乐网站 6

再来,打开客户端连接服务端,咋们退到64bit文书夹的目录中,鼠标移到64bit文本夹上同不经常间安装Shift键,同一时候点击鼠标的右键,选中"在这里地张开命令窗口"那样急忙走入到了该公文夹的cmd命令窗口中(当然不相同的操作系统分裂,这里演示的是windows的操作;还应该有此外步入的办法这里不做牵线,因为个人认为这是最快的);然后,在指令窗口中录入redis-cli.exe -h localhost -p 63柒十三次车来拜会服务端,效果图:

没有错那样客户端就三回九转上服务端了,能够简轻便单在客商端施行下set,get命令:

澳门金莎娱乐网站 7

澳门金莎娱乐网站 8

再来看下服务端窗体截图:

要是是客商端要访谈远程的redis服务端,只要求把localhost换到可访谈的ip就能够了要是还须求密码等越多配备请去地方的不胜地点链接;

澳门金莎娱乐网站 9

 。封装缓存父类,定义Get,Set等常用方法

对的那样客户端就三翻五次上服务端了,能够省略在客商端推行下set,get命令:

先来,上父类的代码:

澳门金莎娱乐网站 10

public class BaseCache : IDisposable
 {
 protected string def_ip = string.Empty;
 protected int def_port = 0;
 protected string def_password = string.Empty;
 public BaseCache()
 {
 }
 public virtual void InitCache(string ip = "", int port = 0, string password = "")
 {
 }
 public virtual bool SetCache<T>(string key, T t, int timeOutMinute = 10) where T : class,new()
 {
  return false;
 }
 public virtual T GetCache<T>(string key) where T : class,new()
 {
  return default(T);
 }
 public virtual bool Remove(string key)
 {
  return false;
 }
 public virtual bool FlushAll()
 {
  return false;
 }
 public virtual bool Any(string key)
 {
  return false;
 }
 public virtual void Dispose(bool isfalse)
 {
  if (isfalse)
  {
  }
 }
 //手动释放
 public void Dispose()
 {
  this.Dispose(true);
  //不自动释放
  GC.SuppressFinalize(this);
 }
 }

假如是顾客端要访谈远程的redis服务端,只必要把localhost换来可访谈的ip就能够了如果还索要密码等愈来愈多安插请去地点的丰富地点链接;

 这里定义的格局未有太多的表明,更加多的情趣小编想看方法名称就知晓了,这几个父类首要落成了IDisposable,实现的Dispose(卡塔尔国中首要用来释放能源并且自定义了一个public virtual void Dispose(bool isfalse卡塔尔(英语:State of Qatar)方法,那之中有一句是GC.SuppressFinalize(this卡塔尔;依据官方网站介绍的情致是窒碍自动释放能源,别的的从未有过什么了,继续看下边包车型客车

 

。定义RedisCache缓存类,执行Redis的Get,Set方法

。封装缓存父类,定义Get,Set等常用方法

率先,咋们分别定义类RedisCache,MemcachedCache(这里暂未兑现对memcache缓存的操作),况且再而三BaseCache,重写Set,Get方法如下代码:

先来,上父类的代码:

/// <summary>
 /// Redis缓存
 /// </summary>
 public class RedisCache : BaseCache
 {
 public RedisClient redis = null;
 public RedisCache()
 {
  //这里去读取默认配置文件数据
  def_ip = "172.0.0.1";
  def_port = 6379;
  def_password = "";
 }
 #region Redis缓存
 public override void InitCache(string ip = "", int port = 0, string password = "")
 {
  if (redis == null)
  {
  ip = string.IsNullOrEmpty(ip) ? def_ip : ip;
  port = port == 0 ? def_port : port;
  password = string.IsNullOrEmpty(password) ? def_password : password;
  redis = new RedisClient(ip, port, password);
  }
 }
 public override bool SetCache<T>(string key, T t, int timeOutMinute = 10)
 {
  var isfalse = false;
  try
  {
  if (string.IsNullOrEmpty(key)) { return isfalse; }
  InitCache();
  isfalse = redis.Set<T>(key, t, TimeSpan.FromMinutes(timeOutMinute));
  }
  catch (Exception ex)
  {
  }
  finally { this.Dispose(); }
  return isfalse;
 }
 public override T GetCache<T>(string key)
 {
  var t = default(T);
  try
  {
  if (string.IsNullOrEmpty(key)) { return t; }
  InitCache();
  t = redis.Get<T>(key);
  }
  catch (Exception ex)
  {
  }
  finally { this.Dispose(); }
  return t;
 }
 public override bool Remove(string key)
 {
  var isfalse = false;
  try
  {
  if (string.IsNullOrEmpty(key)) { return isfalse; }
  InitCache();
  isfalse = redis.Remove(key);
  }
  catch (Exception ex)
  {
  }
  finally { this.Dispose(); }
  return isfalse;
 }
 public override void Dispose(bool isfalse)
 {
  if (isfalse && redis != null)
  {
  redis.Dispose();
  redis = null;
  }
 }
 #endregion
 }
 /// <summary>
 /// Memcached缓存
 /// </summary>
 public class MemcachedCache : BaseCache
 {
 }

澳门金莎娱乐网站 11澳门金莎娱乐网站 12

这里,用到的RedisClient类是来自nuget包引用的,这里nuget包是:

 1 public class BaseCache : IDisposable
 2     {
 3         protected string def_ip = string.Empty;
 4         protected int def_port = 0;
 5         protected string def_password = string.Empty;
 6 
 7         public BaseCache()
 8         {
 9 
10         }
11 
12         public virtual void InitCache(string ip = "", int port = 0, string password = "")
13         {
14 
15         }
16 
17         public virtual bool SetCache<T>(string key, T t, int timeOutMinute = 10) where T : class,new()
18         {
19 
20             return false;
21         }
22 
23         public virtual T GetCache<T>(string key) where T : class,new()
24         {
25 
26             return default(T);
27         }
28 
29         public virtual bool Remove(string key)
30         {
31 
32             return false;
33         }
34 
35         public virtual bool FlushAll()
36         {
37 
38             return false;
39         }
40 
41         public virtual bool Any(string key)
42         {
43 
44             return false;
45         }
46 
47         public virtual void Dispose(bool isfalse)
48         {
49 
50             if (isfalse)
51             {
52 
53 
54             }
55         }
56 
57         //手动释放
58         public void Dispose()
59         {
60 
61             this.Dispose(true);
62             //不自动释放
63             GC.SuppressFinalize(this);
64         }
65     }

澳门金莎娱乐网站 13

View Code

然后,来看下重写的InitCache方法,那些中有豆蔻年华部分ip,port(端口),password(密码)参数,这里直接写入在cs文件中尚无从安插文件读取,大家能够扩大下;这一个参数通过RedisClient布局函数字传送递给底层Socket访谈必要的音信,上面简单体现下RedisClient多少个的布局函数:

此处定义的不二等秘书诀未有太多的讲明,越多的野趣作者想看方法名称就知道了,这一个父类主要完毕了IDisposable,达成的Dispose(卡塔尔中至关心珍视要用来刑释能源而且自定义了一个 public virtual void Dispose(bool isfalse卡塔尔(英语:State of Qatar)方法,那当中有一句是GC.SuppressFinalize(this卡塔尔(قطر‎;依据官方网址介绍的情趣是堵塞自动释放财富,别的的没有何样了,继续看下边的

public RedisClient();
 public RedisClient(RedisEndpoint config);
 public RedisClient(string host);
 public RedisClient(Uri uri);
 public RedisClient(string host, int port);
 public RedisClient(string host, int port, string password = null, long db = 0);

 

本文由金沙澳门官网发布于数据库信息,转载请注明出处:澳门金莎娱乐网站缓存工厂之Redis缓存,Redis缓存

关键词: 金沙澳门官网