zoukankan      html  css  js  c++  java
  • C#下的Redis 学习

    Redis作为世界上最快的分布式NoSQL的数据存储,在高性能构架中离不开他的身影

    Centos下安装Redis

    wget http://download.redis.io/redis-stable.tar.gz
    
    tar xvzf redis-stable.tar.gz
    
    cd redis-stable
    
    make

    配置Redis环境:

    在make成功以后,会在src目录下多出一些可执行文件:redis-server,redis-cli等等。
    
    方便期间用cp命令复制到usr目录下运行。
    
    cp redis-server /usr/local/bin/
    
    cp redis-cli /usr/local/bin/
    
    然后新建目录,存放配置文件
    
    mkdir /etc/redis
    
    mkdir /var/redis
    
    mkdir /var/redis/log
    
    mkdir /var/redis/run
    
    mkdir /var/redis/6379
    
     
    
    在redis解压根目录中找到配置文件模板,复制到如下位置。
    
    cp redis.conf /etc/redis/6379.conf
    
    通过vim命令修改
    
    daemonize yes
    
    pidfile /var/redis/run/redis_6379.pid
    
    logfile /var/redis/log/redis_6379.log
    
    dir /var/redis/6379
    
    最后运行redis:
    $ redis-server /etc/redis/6379.conf

    如果没有配置日志文件路径,启动Redis后的日志信息将输出到控制台,否则写入日志文件

    用PM命令安装ServiceStack的Redis驱动

    PM> Install-Package ServiceStack.Redis
    正在尝试收集与目标为“.NETFramework,Version=v4.5.2”的项目“RedisApp”有关的包“ServiceStack.Redis.4.0.60”的依赖项信息
    正在尝试解析程序包“ServiceStack.Redis.4.0.60”的依赖项,DependencyBehavior 为“Lowest”
    正在解析操作以安装程序包“ServiceStack.Redis.4.0.60”
    已解析操作以安装程序包“ServiceStack.Redis.4.0.60”
      GET https://www.nuget.org/api/v2/package/ServiceStack.Interfaces/4.0.60
      OK https://www.nuget.org/api/v2/package/ServiceStack.Interfaces/4.0.60 2943ms
    正在安装 ServiceStack.Interfaces 4.0.60。
    正在将程序包“ServiceStack.Interfaces.4.0.60”添加到文件夹“F:	emp20160704RedisApppackages”
    已将程序包“ServiceStack.Interfaces.4.0.60”添加到文件夹“F:	emp20160704RedisApppackages”
    已将程序包“ServiceStack.Interfaces.4.0.60”添加到“packages.config”
    已将“ServiceStack.Interfaces 4.0.60”成功安装到 RedisApp
      GET https://www.nuget.org/api/v2/package/ServiceStack.Text/4.0.60
      OK https://www.nuget.org/api/v2/package/ServiceStack.Text/4.0.60 1845ms
    正在安装 ServiceStack.Text 4.0.60。
    正在将程序包“ServiceStack.Text.4.0.60”添加到文件夹“F:	emp20160704RedisApppackages”
    已将程序包“ServiceStack.Text.4.0.60”添加到文件夹“F:	emp20160704RedisApppackages”
    已将程序包“ServiceStack.Text.4.0.60”添加到“packages.config”
    已将“ServiceStack.Text 4.0.60”成功安装到 RedisApp
      GET https://www.nuget.org/api/v2/package/ServiceStack.Common/4.0.60
      OK https://www.nuget.org/api/v2/package/ServiceStack.Common/4.0.60 1862ms
    正在安装 ServiceStack.Common 4.0.60。
    正在将程序包“ServiceStack.Common.4.0.60”添加到文件夹“F:	emp20160704RedisApppackages”
    已将程序包“ServiceStack.Common.4.0.60”添加到文件夹“F:	emp20160704RedisApppackages”
    已将程序包“ServiceStack.Common.4.0.60”添加到“packages.config”
    已将“ServiceStack.Common 4.0.60”成功安装到 RedisApp
      GET https://www.nuget.org/api/v2/package/ServiceStack.Redis/4.0.60
      OK https://www.nuget.org/api/v2/package/ServiceStack.Redis/4.0.60 1968ms
    正在安装 ServiceStack.Redis 4.0.60。
    正在将程序包“ServiceStack.Redis.4.0.60”添加到文件夹“F:	emp20160704RedisApppackages”
    已将程序包“ServiceStack.Redis.4.0.60”添加到文件夹“F:	emp20160704RedisApppackages”
    已将程序包“ServiceStack.Redis.4.0.60”添加到“packages.config”
    已将“ServiceStack.Redis 4.0.60”成功安装到 RedisApp
    PM> 

    简单的c#访问代码:

    using System;
    using ServiceStack.Redis;
    using ServiceStack.Redis.Support;
    
    namespace RedisApp
    {
        class Program
        {
            static void Main(string[] args)
            {
    
                string val = "https://github.com/MSOpenTech/redis/archive/3.0.zip";
     
                Event evt = new Event
                {
                    Id = 1,
                    Title = "深坪山2016字第496号",
                    CreateTime = DateTime.Now,
                    Address = "坪山新区汤坑社区汤坑路107号左侧",
                    EvtGuid = Guid.NewGuid(),
                    Desc = "乱堆物堆料"
                };
    
                RedisClient client = new RedisClient("localhost");
                client.SetValue("key1", val);
    
                Console.WriteLine(client.GetValue("key1"));
    
                client.Set<Event>("evtKey", evt);
    
                evt = client.Get<Event>("evtKey");
    
    
                var ser = new ObjectSerializer();
                byte[] evtBytes = ser.Serialize(evt);
    
                client.Set<byte[]>("evtKeyByte", evtBytes);
    
                evtBytes = client.Get<byte[]>("evtKeyByte");
    
                evt = ser.Deserialize(evtBytes) as Event;
    
    
            }
        }
    
        [Serializable]
        class Event
        {
            public int Id { get; set; }
            public string Title { get; set; }
            public DateTime CreateTime { get; set; }
            public string Address { get; set; }
            public string Desc { get; set; }
            public Guid EvtGuid { get; set; }
        }
    
    
    }

    查看服务器上所有键值

    根据键值获取值:

    获取值类型:

  • 相关阅读:
    Python冒泡算法和修改配置文件
    第五章:处理数据
    第四章:持久存储
    Python之打印99乘法表
    Python之编写登录接口
    Python之文件操作
    第三章:文件与异常
    FineUI 修改config表属性
    FineUI Grid中WindowField根据列数据决定是否Enalble
    表之间不同字段的数据复制
  • 原文地址:https://www.cnblogs.com/weiweictgu/p/5641074.html
Copyright © 2011-2022 走看看