银河官网娱乐场网站-9992019.com-银河官网娱乐场

银河官网娱乐场【每日更新】【Redis学习】

来源:http://www.2sini.net 作者:银河官网娱乐场 人气:181 发布时间:2019-11-08
摘要:  5. Redis订阅和发布格局和Redis事务 -------------------Redis事务------------------- 1、概念: 银河官网娱乐场【每日更新】【Redis学习】。   redis中的事务是黄金时代组命令的汇集。事务同命令

 

5.

Redis订阅和发布格局和Redis事务

-------------------Redis事务-------------------

1、概念:

银河官网娱乐场【每日更新】【Redis学习】。    redis中的事务是黄金时代组命令的汇集。事务同命令同样都以redis的微小施行单位,叁个事情中的命令要么都推行,要么都不进行。

 

2、事务的几种属性

    1、事务是叁个单独的隔开操作:事务中的全体命令都会系列化、按梯次的推行。事务在履行的历程中,不会被别的客商端发送过来的命令央求所打断。

    2、redis事务是原子。原子意味着要么全体的一声令下都执行,要么都不实施。

银河官网娱乐场【每日更新】【Redis学习】。4.

String可以包含别的数据,举个例子jpg图片可能连串化的对象;string类型是Redis最大旨的数据类型,八个键最大能累积512MB

Hashes 是三个string类型的田野和value的映射表,hash非常符合用来存储对象

 List列表类型能够仓库储存一个长久以来的字符串列表,常用的操作时向列表两端添法郎素,也许得到列表的某叁个局地;列表类型内部是应用双向链表(double linked list卡塔尔完毕的,所以向列表两端添港成分的时光复杂度为O(I卡塔尔,获取越临近两端的成分,速度就越快。

银河官网娱乐场【每日更新】【Redis学习】。列表具备有序性,集结具备唯大器晚成性。

集合Set:七个群集类型键之间还足以拓宽并集、交集、差集运算。

长久以来集中Sort-Set...

 

3.

Redis是一个用的相比较布满的Key/Value的内部存款和储蓄器数据库,银河官网娱乐场【每日更新】【Redis学习】。和讯博客园、Github、StackOverflow 等大型应用中都用其视作 高速缓存。

Redis本人未有提供Windows版本的,而且在Windows上也不太平静,平日都将其布置到Linux情形下,Redis能够在其官方网站络下载

Beetle.Redis就算非常不足完整,可是自个儿说多少个亮点:
1、底层极其平稳,差不离未有质量损耗。
2、连接数极度牢固,笔者用了全方位一个月(经过了双十风流倜傥的核实卡塔 尔(英语:State of Qatar),一点标题都还未。
3、代码量不大,唯有贰10个类,完全开源。

 

2.

 

RedisHelper帮助类

银河官网娱乐场 1银河官网娱乐场 2

public class RedisManager
 {
  private static PooledRedisClientManager prcm;
  /// <summary>
  /// 创建链接池管理对象
  /// </summary>
  private static void CreateManager()
  {
   string[] writeServerList = SplitString(RedisConfigInfo.WriteServerList, ",");
   string[] readServerList = SplitString(RedisConfigInfo.ReadServerList, ",");
   prcm = new PooledRedisClientManager(readServerList, writeServerList,
        new RedisClientManagerConfig
        {
         MaxWritePoolSize = RedisConfigInfo.MaxWritePoolSize,
         MaxReadPoolSize = RedisConfigInfo.MaxReadPoolSize,
         AutoStart = RedisConfigInfo.AutoStart,
        });
  }
  private static string[] SplitString(string strSource, string split)
  {
   return strSource.Split(split.ToArray());
  }
  /// <summary>
  /// 客户端缓存操作对象
  /// </summary>
  public static IRedisClient GetClient()
  {
   if (prcm == null)
    CreateManager();
   return prcm.GetClient();
  }
  /// <summary>
  /// 缓存默认24小时过期
  /// </summary>
  public static TimeSpan expiresIn = TimeSpan.FromHours(24);
  /// <summary>
  /// 设置一个键值对,默认24小时过期
  /// </summary>
  /// <typeparam name="T"></typeparam>
  /// <param name="key"></param>
  /// <param name="value"></param>
  /// <param name="redisClient"></param>
  /// <returns></returns>
  public static bool Set<T>(string key, T value, IRedisClient redisClient)
  {
   return redisClient.Set<T>(key, value, expiresIn);
  }
  /// <summary>
  /// 将某类数据插入到list中
  /// </summary>
  /// <typeparam name="T"></typeparam>
  /// <param name="key">一般是BiaoDiGuid</param>
  /// <param name="item"></param>
  /// <param name="redisClient"></param>
  public static void Add2List<T>(string key, T item, IRedisClient redisClient)
  {
   var redis = redisClient.As<T>();
   var list = redis.Lists[GetListKey(key)];
   list.Add(item);
  }
  /// <summary>
  /// 获取一个list
  /// </summary>
  /// <typeparam name="T"></typeparam>
  /// <param name="key"></param>
  /// <param name="redisClient"></param>
  /// <returns></returns>
  public static IRedisList<T> GetList<T>(string key, IRedisClient redisClient)
  {
   var redis = redisClient.As<T>();
   return redis.Lists[GetListKey(key)];
  }
  public static string GetListKey(string key, string prefix = null)
  {
   if (string.IsNullOrEmpty(prefix))
   {
    return "urn:" + key;
   }
   else
   {
    return "urn:" + prefix + ":" + key;
   }
  }
 }

View Code

布局安装

3.3将参数写入配置文件

<appSettings>
<add key="WriteServerList" value="127.0.0.1:6379" />
<add key="ReadServerList" value="127.0.0.1:6379" />
<add key="MaxWritePoolSize" value="60" />
<add key="MaxReadPoolSize" value="60" />
<add key="AutoStart" value="true" />
<add key="LocalCacheTime" value="1800" />
<add key="RecordeLog" value="false" />
</appSettings>
3.4读取配置文件参数类

public class RedisConfigInfo
{
 public static string WriteServerList = ConfigurationManager.AppSettings["WriteServerList"];
 public static string ReadServerList = ConfigurationManager.AppSettings["ReadServerList"];
 public static int MaxWritePoolSize = Convert.ToInt32(ConfigurationManager.AppSettings["MaxWritePoolSize"]);
 public static int MaxReadPoolSize = Convert.ToInt32(ConfigurationManager.AppSettings["MaxReadPoolSize"]);
 public static int LocalCacheTime = Convert.ToInt32(ConfigurationManager.AppSettings["LocalCacheTime"]);
 public static bool AutoStart = ConfigurationManager.AppSettings["AutoStart"].Equals("true") ? true : false;
}

 

使用:

protected void btn1_Click(object sender, EventArgs e)
  {
   string UserName;
   //读取数据,如果缓存存在直接从缓存中读取,否则从数据库读取然后写入redis
   using (var redisClient = RedisManager.GetClient())
   {
    UserName = redisClient.Get<string>("UserInfo_123");
    if (string.IsNullOrEmpty(UserName)) //初始化缓存
    {
     //TODO 从数据库中获取数据,并写入缓存
     UserName = "张三";
     redisClient.Set<string>("UserInfo_123", UserName, DateTime.Now.AddSeconds(10));
     lbtest.Text = "数据库数据:" + "张三";
     return;
    }
    lbtest.Text = "Redis缓存数据:" + UserName;
   }
  }

 

Redis安装与开发银行

1. 下载Redis

Redis自己并未有提供Windows版本的,而且在Windows上也不太稳定,日常都将其布局到Linux情形下,Redis能够在其官互连网下载, MSOpenTech中提供了Windows版本,这里为了求学安装这一本子。

银河官网娱乐场 3

点击跳转到Github后,直接点击Zip下载。下载后基于自身Computer的版本选拔34人依然64人张开设置。笔者将六二十个人的解压后放到D:Redis文件夹下,同一时候将文件夹内的redis.conf也拷贝到该目录下,这么些是redis的布署音信:

银河官网娱乐场 4

2. 启动Redis

在Windows下边启用Redis和起步MogoDB相符,供给动用命令行运行,首先定位到该目录,运维如下命令:

D:Redis>redis-server.exe redis.conf

银河官网娱乐场 5

因为是在本机运行的,这里要在乎端口号,同一时间要保持端口不要关闭。

本来你也能够将Redis作为Windows服务在后台一直张开。

3. 使用

今天再开三个调节台应用程序连接以前运转的Redis,如下:

D:Redis>redis-cli.exe -h 172.16.147.121 -p 6379

在这之中 –h后边是本机的ip地址,后边的是端口。

然后就能够实践set 给key为city赋值:

redis 172.16.147.121:6379> set city Shanghai

通过get能够获得钦定key为city的值了。

redis 172.16.147.121:6379> get city

银河官网娱乐场 6

与此同不经常候,在大家往redis上写多少的时候,Redis服务也会依期的往文件中写多少

银河官网娱乐场 7

那边仅轻松的牵线了get和set命令,更加的多命令能够查阅 

.初探Redis

下载ServiceStack.Redis

和MongoDB相近,在.NET中行使Redis其实也是运用第三方驱动,官方网站推荐的是应用ServiceStack.Redis 下载后解压获得如下dll

银河官网娱乐场 8

.NET项目中央银行使Redis

新建多个Console程序,援用上一步骤解压的多少个dll。

做叁个粗略的事例,在.NET中收获在此之前我们设置的city的值。

class Program
{
    static RedisClient redisClient = new RedisClient("172.16.147.121", 6379);//redis服务IP和端口
    static void Main(string[] args)
    {
        Console.WriteLine(redisClient.Get<string>("city"));
        Console.ReadKey();
    }
}

先是通过 static RedisClient redisClient = new RedisClient("172.16.147.121", 6379);

确立连接 ,然后就能够直接用redisClient里面包车型客车Get方法得到key为city的值了。

银河官网娱乐场 9

在前方的通令行中,大家网city中存入了Shanghai,现在我们拿到到了那几个值。

ServerStack中有广大情势能够在.NET中调用,其类协会图如下:

银河官网娱乐场 10

总结

正文简介了Redis,Redis如何在Windows下安装,以致哪些在.NET中接纳访谈和接收Redis,希望对你具备助于,下文将教师怎么着在.NET中网Redis中读写复杂对象。

本文由银河官网娱乐场网站 发布于银河官网娱乐场,转载请注明出处:银河官网娱乐场【每日更新】【Redis学习】

关键词:

最火资讯