政工同命令一样都是redis的细微执行单位,它接济存储的value类型相对越多

Redis安装与开行

windows下搭建redis环境

  • 下载redis对应的windows版本

Redis本身没有提供Windows版本的,并且在Windows上也不太平静,一般都将其安排到Linux环境下,Redis可以在其官网上下载MSOpenTech中提供了Windows版本;也足以一向百度搜;(附件已包罗安装版本和直接操作版本)

Win版服务端下载地址:https://github.com/ServiceStack/redis-windows

  • 安装redis

安装程序可以直接默认安装,注意端口设置就行;
如果是下载的ZIP文件,解压后可以存放到某个路径下(比如我D:\Program
Files\Redis)

  • 启用redis

启用redis需求动用命令,首先定位到redis路径,按住Shift+右键,点击在那里用命令打开:

D:\Program Files\Redis>redis-server.exe redis.windows.conf

如若redis.windows.conf那几个布局文件中的bind与port的IP和端口已经被挤占,则会提醒如下音讯:

图片 1

那会儿首先查询该端口的 pid,使用命令 【netstat -ano | findstr 6379】

图片 2

根据pid查看该详细的进程名称,使用命令【tasklist | findstr 10628】

图片 3

那一个时候可以强制删除本程序及其子进度,使用命令 【taskkill -f -t -im
redis-server.exe】,也足以修改redis.windows.conf文件中port端口号,都OK

图片 4

以此时候redis启动成功了,可是不用关掉本窗口,保持端口不是关门;当然也足以在windows服务少校redis服务设置为随系统启动。那样就毫无开着格外命令窗口了。

图片 5

2. 启动Redis

在Windows上面启用Redis和起步MogoDB一样,必要采取命令行启动,首先定位到该目录,运行如下命令:

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

图片 6

因为是在本机运行的,那里要留意端口号,同时要保全端口不要关闭。

当然你也足以将Redis作为Windows服务在后台一直打开。

redis简介

Redis是一个开源的行使ANSI
C语言编写、襄助网络、可根据内存亦可持久化的日志型、Key-Value数据库,和Memcached类似,它辅助存储的value类型相对越来越多,包含string(字符串)、list(链表)、set(集合)、zset(sorted
set
–有序聚集)和hash(哈希类型)。这几个数据类型都接济push/pop、add/remove及取交集并集和差集及更增加的操作,而且这么些操作都是原子性的。在此基础上,redis扶助各样差异形式的排序。与memcached一样,为了保障作用,数据都是缓存在内存中。区其他是redis会周期性的把立异的数量写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上贯彻了master-slave(主从)同步。

Redis是一个高质量的key-value数据库。
redis的产出,很大程度补偿了memcached那类key/value存储的缺少,在部
分场馆可以对关周密据库起到很好的补给功用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很有益。

Redis扶助焦点同步。数据足以从主服务器向自由数量的从服务器上共同,从服务器能够是关乎其他从服务器的主服务器。那使得Redis可进行单层树复制。存盘可以顺便的对数码开展写操作。由于完全落到实处了发布/订阅机制,使得从数据库在任啥地方方联合树时,可订阅一个频段并接收主服务器完整的音讯发表记录。同步对读取操作的可扩大性和数码冗余很有救助。

Redis是一种高级的key:value存储系统,其中value辅助各个数据类型:
1.字符串(strings) 2.字符串列表(lists) 3.字符串集合(sets)
4.有序字符串集合(sorted sets) 5.哈希(hashes)

脚下在使用的品种有今日头条新浪、Github、StackOverflow
等大型应用中都用其作为缓存,Redis的官网为http://redis.io/

.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的值了。

图片 7

在头里的吩咐行中,我们网city中存入了Shanghai,现在大家取获得了这么些值。

ServerStack中有众多措施能够在.NET中调用,其类协会图如下:

图片 8

windows下简单利用redis

重复定位到redis路径,按住Shift+右键,点击在这里用命令打开:

图片 9😉

D:\Program Files\Redis>redis-cli.exe -h 127.0.0.1 -p 6379

然后就可以执行set 给key为city赋值:

127.0.0.1:6379> set city Shanghai

通过get可以获取指定key为city的值了。

172.16.147.121:6379> get city

图片 10😉

图片 11

.NET下简单利用redis

  • 下载ServiceStack.Redis

和MongoDB一样,在.NET中动用Redis其实也是利用第三方驱动,官网推荐的是拔取ServiceStack.Redis
(可看附件)。

ServiceStack.Redis恍如已经早先收费,现在得以行使StackExchange.Redis

  • 使用ServiceStack.Redis

先是解压ServiceStack.Redis并找到以下多少个DLL
图片 12

接下来添加到项目引用,就足以发轫不难利用redis了;

图片 13😉

private void button1_Click(object sender, EventArgs e)

        {

            RedisClient redisClient = new RedisClient("127.0.0.1", 6379);

            this.label1.Text = "获取姓名";

            this.textBox1.Text = redisClient.Get<string>("city");

            this.label2.Text = "获取年龄";

            this.textBox2.Text = redisClient.Get<string>("age");

            this.label3.Text = "获取性别";

            this.textBox3.Text = redisClient.Get<string>("sex");

        } 

图片 14😉

 

.初探Redis

Redis订阅和揭露方式和Redis事务

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

1、概念:

   
redis中的事务是一组命令的聚集。事务同命令一样都是redis的微乎其微执行单位,一个业务中的命令要么都执行,要么都不履行。

 

2、事务的二种特性

   
1、事务是一个独立的隔离操作:事务中的所有命令都会连串化、按梯次的实践。事务在推行的进程中,不会被此外客户端发送过来的指令请求所打断。

    2、redis事务是原子。原子意味着要么所有的下令都执行,要么都不举行。

4.

String可以涵盖其余数据,比如jpg图片或者种类化的对象;string类型是Redis最焦点的数据类型,一个键最大能积存512MB

Hashes
是一个string类型的field和value的映射表,hash越发吻合用来存储对象

 List列表类型可以积存一个一如既往的字符串列表,常用的操作时向列表两端添日元素,或者取得列表的某一个有些;列表类型内部是运用双向链表(double
linked
list)已毕的,所以向列表两端添澳元素的岁月复杂度为O(I),获取越接近两端的元素,速度就越快。

列表具有有序性,集合具有唯一性。

集合Set:多少个集合类型键之间还是可以拓展并集、交集、差集运算。

不变聚集Sort-Set…

 

3.

Redis是一个用的可比常见的Key/Value的内存数据库,乐乎和讯、Github、StackOverflow 等大型应用中都用其看做
高速缓存。

Redis本身没有提供Windows版本的,并且在Windows上也不太平静,一般都将其配备到Linux环境下,Redis可以在其官网上下载

Beetle.Redis固然不够完整,不过本人说多少个优点:
1、底层卓殊平静,几乎从不品质损耗。
2、连接数格外安静,我用了全部一个月(经过了双十一的考验),一点难题都不曾。
3、代码量很小,唯有十多少个类,完全开源。

 

2.

 

RedisHelper帮助类

图片 15图片 16

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,Redis怎么样在Windows下安装,以及怎么样在.NET中利用访问和拔取Redis,希望对您抱有扶助,下文将助教怎么样在.NET中网Redis中读写复杂对象。

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

图片 17

再就是,在我们往redis上写多少的时候,Redis服务也会定时的往文件中写多少

图片 18

那边仅不难的介绍了get和set命令,愈多命令可以查看 http://redis.io/commands

下载ServiceStack.Redis

和MongoDB一样,在.NET中动用Redis其实也是行使第三方驱动,官网推荐的是利用ServiceStack.Redis 下载后解压得到如下dll

图片 19

1. 下载Redis

Redis本身没有提供Windows版本的,并且在Windows上也不太平静,一般都将其陈设到Linux环境下,Redis可以在其官网上下载, MSOpenTech中提供了Windows版本,那里为了学习安装这一本子。

图片 20

点击跳转到Github后,直接点击Zip下载。下载后基于自己电脑的本子选取32位依旧64位进行安装。我将64位的解压后放到D:\Redis文件夹下,同时将文件夹内的redis.conf也拷贝到该目录下,这几个是redis的计划音讯:

图片 21

5.