一、下载安装Redis(windows版本)

  1、下载地址:https://github.com/MicrosoftArchive/redis/releases

  2、安装:

      1)打开运行窗口,输出cmd,进入DOS命令窗口。然后打开至redis目录,执行redis-service redis.windows.conf命令(下图为安装成功)。

        windows下redis安装及应用

       2)这个窗口要保持开启关闭时redis服务会自动关闭,所以需要把redis添加到windows服务(可以保存成两个bat批处理文件)。

         安装命令:redis-server.exe --service-install redis.windows.conf --loglevel verbose

         卸载命令:redis-server --service-uninstall 

二、.net环境应用,以ServiceStack.Redis类库为例(功能:删除商品下Key值为xxxxx的缓存)。

  1、定义redis单独配置文件。

    1)web.config

      windows下redis安装及应用

       windows下redis安装及应用

    2)redis.config

      windows下redis安装及应用

  2、定义RedisSection类,redis相关属性等。

namespace Demo.Util
{
    public class RedisSection : ConfigurationSection
    {
        private static RedisSection _instance;

        public static RedisSection Instatce
        {
            get
            {
                _instance = ConfigurationManager.GetSection("redissection") as RedisSection;
                return _instance;
            }
        }

        /// <summary>
        /// 服务器
        /// </summary>
        [ConfigurationProperty("host", IsRequired = true)]
        public string Host
        {
            get { return this["host"].ToString(); }
        }

        /// <summary>
        /// 端口号
        /// </summary>
        [ConfigurationProperty("port", IsRequired = true)]
        public string Port
        {
            get { return this["port"].ToString(); }
        }

        /// <summary>
        /// 密码
        /// </summary>
        [ConfigurationProperty("password", IsRequired = false)]
        public string Password
        {
            get { return this["password"].ToString(); }
        }

        /// <summary>
        /// 过期时间 单位:小时
        /// </summary>
        [ConfigurationProperty("expireTime", IsRequired = false)]
        public int ExpireTime
        {
            get { return int.Parse(this["expireTime"].ToString()); }
        }

        /// <summary>
        /// 最大写链接数
        /// </summary>
        [ConfigurationProperty("MaxWritePoolSize", IsRequired = false, DefaultValue = 5)]
        public int MaxWritePoolSize
        {
            get
            {
                int maxWritePoolSize = (int)base["MaxWritePoolSize"];
                return maxWritePoolSize > 0 ? maxWritePoolSize : 5;
            }
            set
            {
                base["MaxWritePoolSize"] = value;
            }
        }

        /// <summary>
        /// 最大读链接数
        /// </summary>
        [ConfigurationProperty("MaxReadPoolSize", IsRequired = false, DefaultValue = 5)]
        public int MaxReadPoolSize
        {
            get
            {
                int maxReadPoolSize = (int)base["MaxReadPoolSize"];
                return maxReadPoolSize > 0 ? maxReadPoolSize : 5;
            }
            set
            {
                base["MaxReadPoolSize"] = value;
            }
        }

        /// <summary>
        /// 自动重启
        /// </summary>
        [ConfigurationProperty("AutoStart", IsRequired = false, DefaultValue = true)]
        public bool AutoStart
        {
            get
            {
                return (bool)base["AutoStart"];
            }
            set
            {
                base["AutoStart"] = value;
            }
        }

        [ConfigurationProperty("keys", IsDefaultCollection = true)]
        public KeyCollection Keys
        {
            get { return this["keys"] as KeyCollection; }
        }
    }

    public class KeyCollection : ConfigurationElementCollection
    {
        protected override ConfigurationElement CreateNewElement()
        {
            return new KeyElement();
        }
        protected override object GetElementKey(ConfigurationElement element)
        {
            return ((KeyElement)element).Name;
        }

        public KeyElement this[int index]
        {
            get
            {
                return this.BaseGet(index) as KeyElement;
            }
        }
        new public KeyElement this[string Name]
        {
            get
            {
                return (KeyElement)BaseGet(Name);
            }
        }
        new public int Count
        {
            get { return base.Count; }
        }
    }

    public class KeyElement : ConfigurationElement
    {
        [ConfigurationProperty("name", IsRequired = false)]
        public string Name
        {
            get { return this["name"].ToString(); }
        }

        [ConfigurationProperty("key", IsRequired = true)]
        public string Key
        {
            get { return this["key"].ToString(); }
        }
    }
}
View Code

相关文章:

  • 2021-12-14
  • 2021-08-11
  • 2021-11-20
猜你喜欢
  • 2021-07-13
  • 2018-01-19
  • 2021-07-01
  • 2021-06-15
  • 2022-02-20
  • 2021-05-17
  • 2021-09-09
相关资源
相似解决方案