zoukankan      html  css  js  c++  java
  • Redis简单配置和使用

         学到Redis中需要整理和配置的东西比较多,资源也是比较分散!这次的主要还是将知识整合一下,开发过程中所需要的资源整合一下,也方便今后涉及到这块地方的知识时,将时间大量浪费在了找这些资源上了!

    一.Redis(NOSQL数据库):

           redis主要是用于存储键值对数据(主要对这进行了优化)的一种数据库,并且对数据进行了自动过期处理。和memcached不同之处在于,redis数据存在本机硬盘上,而memcached则是将数据存在内存中。

          redis有Windows版和linux版,平常测试开发基本使用Windows版,在正式项目开发过程中,一般用linux

    二.redis的安装和配置:

           关于redis的安装(Windows版)可以参考官方教程配置,

             这个是通过server.exe启动的:http://www.redis.net.cn/tutorial/3503.html

             win64可以下载这个带服务的(后缀是.msi):https://github.com/MSOpenTech/redis/releases

             win32下载选择适合版本:https://github.com/MSOpenTech/redis/releases?after=win-2.8.2102

            .net驱动:https://github.com/ServiceStack/ServiceStack.Redis/tree/master/lib

    驱动需要下载下列四个:

     

    三.代码连接Redis:

    根据业务的不同,进行相应的连接配置,这里介绍的是最简单的连接配置:

    class RedisManager
        {
            public static PooledRedisClientManager clientManager { get; private set; }
            static RedisManager()
            {
                RedisClientManagerConfig clientMangerConfig = new RedisClientManagerConfig();
                clientMangerConfig.MaxWritePoolSize = 128;
                clientMangerConfig.MaxReadPoolSize = 128;
                clientManager = new PooledRedisClientManager( new string[] { "127.0.0.1" }, new string[] { "127.0.0.1" }, clientMangerConfig);
            }     
        }

    设置和读取值:

     using(client = RedisManager.clientManager.GetClient())
         {
                   string str= client.Set<string>("key","value",expireTime);//括号中第一个参数键,第二个值是值,第三个是过期时间
         }

       关于Redis知识也可以参考这篇博客,确实也写的挺好:http://www.cnblogs.com/yangecnu/p/Introduct-Redis-in-DotNET.html

    四.消息队列:

             到底什么是消息队列?

    答:来个个人通俗的解释吧。消息队列,顾名思义 首先是个队列。

    队列的操作有入队出队也就是你有一个程序在产生内容然后入队(生产者)

    另一个程序读取内容,内容出队(消费者)

    生产数据:

     1 static void Main(string[] args)
     2 {
     3     IRedisClient client;
     4     using (client = RedisManager.clientManager.GetClient())
     5     {              
     6         while (true)
     7         {
     8             string line = Console.ReadLine();
     9             client.EnqueueItemOnList("redistest", line);
    10             if (line == "ok")
    11             {
    12                 break;
    13             }
    14         }   
    15     }
    16     Console.ReadKey();
    17 }

    消费数据:

    static void Main(string[] args)
    {
        using (var client = RedisManager.clientManager.GetClient())
        {
            while (true)
            {
                string str = client.DequeueItemFromList("redistest");
                if (str == null)
                {
                    Console.WriteLine("没有找到数据");
                    Thread.Sleep(10000);
                    continue;
                }
                else
                {
                    Thread.Sleep(5000);
                    Console.WriteLine(str);
                }
            } 
        }
    }

    注:这里可以大量生产数据,而消费者可以慢慢的消费生产的数据

    五.Redis数据库管理工具及使用过程中注意事项:

         Redis数据库管理工具:http://redisdesktop.com/download

                可以方便的看到redis Key中存储的各种类型的值。

        使用Redis时需注意:

                1.当很多数据往Redis中写入时,要避免键冲突:键冲突会使得相同名称的键的值会被覆盖掉。

                         避免键冲突:例如可以适当给键的名称加个前缀

                2.Redis是大家共享存储的键值对存储空间,A写入的,B是可以读出来的;A写入的,B也是可以进行覆盖掉的

  • 相关阅读:
    Elasticsearch 类比 mysql 实现 in and like or
    es 全文查询
    es 聚合查询
    es多字段分组并求数量
    es 多字段分组并求和
    es 滚动查询二
    es 滚动查询一
    java8 日期操作
    语录(心灵鸡汤来一波)
    并发处理-隔离级别
  • 原文地址:https://www.cnblogs.com/fengxuehuanlin/p/5460411.html
Copyright © 2011-2022 走看看