• Redis-Service.Stack的初级使用


    主要解决Redis服务器带有密码的情况下初始化。

    创建RedisHelper类,直接贴代码:

     
    using ServiceStack.Redis;
    using System;
    class RedisHelper { private static readonly PooledRedisClientManager pool = null; private static readonly string[] redisHosts = null; public static int RedisMaxReadPool = 1000; public static int RedisMaxWritePool = 1000; static RedisHelper() { //不带密码的ip地址:ip:port //带有密码的ip地址:password@ip:port var redisHostStr = "123456@192.168.1.10:6379"; if (!string.IsNullOrEmpty(redisHostStr)) { redisHosts = redisHostStr.Split(','); if (redisHosts.Length > 0) { pool = new PooledRedisClientManager(redisHosts, redisHosts, new RedisClientManagerConfig() { MaxWritePoolSize = RedisMaxWritePool, MaxReadPoolSize = RedisMaxReadPool, AutoStart = true }); } } } public static void Add<T>(string key, T value, DateTime expiry) { if (value == null) { return; } if (expiry <= DateTime.Now) { Remove(key); return; } try { if (pool != null) { using (var r = pool.GetClient()) { if (r != null) { r.SendTimeout = 1000; r.Set(key, value, expiry - DateTime.Now); } } } } catch (Exception ex) { string msg = string.Format("{0}:{1}发生异常!{2}", "cache", "存储", key); Log(msg); } } public static void Add<T>(string key, T value, TimeSpan slidingExpiration) { if (value == null) { return; } if (slidingExpiration.TotalSeconds <= 0) { Remove(key); return; } try { if (pool != null) { using (var r = pool.GetClient()) { if (r != null) { r.SendTimeout = 1000; r.Set(key, value, slidingExpiration); r.Save(); } } } } catch (Exception ex) { string msg = string.Format("{0}:{1}发生异常!{2}", "cache", "存储", key); Log(msg); } } public static T Get<T>(string key) { if (string.IsNullOrEmpty(key)) { return default(T); } T obj = default(T); try { if (pool != null) { using (var r = pool.GetClient()) { if (r != null) { r.SendTimeout = 1000; obj = r.Get<T>(key); } } } } catch (Exception ex) { string msg = string.Format("{0}:{1}发生异常!{2}", "cache", "获取", key); Log(msg); } return obj; } public static void Remove(string key) { try { if (pool != null) { using (var r = pool.GetClient()) { if (r != null) { r.SendTimeout = 1000; r.Remove(key); } } } } catch (Exception ex) { string msg = string.Format("{0}:{1}发生异常!{2}", "cache", "删除", key); Log(msg); } } public static bool Exists(string key) { try { if (pool != null) { using (var r = pool.GetClient()) { if (r != null) { r.SendTimeout = 1000; return r.ContainsKey(key); } } } } catch (Exception ex) { string msg = string.Format("{0}:{1}发生异常!{2}", "cache", "是否存在", key); Log(msg); } return false; } static void Log(string s) { Console.WriteLine("RedisHelper:"+s); } }

    使用方法:

        class Program
        {
            static void Main(string[] args)
            {
                string name = RedisHelper.Get<string>("name:1");
                Console.WriteLine(name);
    
                //add user object
                //User user = new User()
                //{
                //    UserToken = "庄周",
                //    Password = "123456",
                //    Age = 100
                //};
                //RedisHelper.Add("user:1", user, DateTime.Now + new TimeSpan(1, 0, 0));
    
                User user = RedisHelper.Get<User>("user:1");
    
                Console.WriteLine(user.ToString());
                string st="";
                for (int i = 0; i < 1024; i++)
                {
                    st += "a";
                }
                RedisHelper.Add("st",st,new TimeSpan(1,0,0));
                while (true)
                {
                    Console.ReadLine();
                }
            }
    
    
        }
    
        class User
        {
            public string UserToken { get; set; }
            public int Age { get; set; }
            public string Password { get; set; }
    
            public override string ToString()
            {
                string s = "UserToken:" + UserToken;
                s += " Password:" + Password;
                s += " Age:" + Age;
                return s;
            }
        }
  • 相关阅读:
    密码保护
    实现搜索功能
    完成个人中心—导航标签
    个人中心标签页导航
    评论列表显示及排序,个人中心显示
    完成评论功能
    从首页问答标题到问答详情页
    首页列表显示全部问答,完成问答详情页布局
    Android基础学习:Android环境搭建
    liunx 硬盘分区
  • 原文地址:https://www.cnblogs.com/mengdongsky/p/7463515.html
Copyright © 2020-2023  润新知