zoukankan      html  css  js  c++  java
  • 使用Azure Redis Cache

    通过上一篇博客《Redis Cache 简介》我们已经简单了解了Azure Redis Cache,这里就不过多赘述了。

    1、创建Redis Cache

    创建Redis Cache之前,我们首先要登录到 Azure Portal上,点击 New, Data + Storage, Redis Cache。

    这里有一点需要说明一下,由于国内Azure目前不支持New Portal,因此国内的Azure订阅只能通过Powershell创建Redis Cache

    #弹出界面输入用户名密码
    Login-AzureRmAccount
    #获取当前订阅名称
    Get-AzureRmSubscription| Sort SubscriptionName|Select SubscriptionName
    #选择当前订阅
    Select-AzureRmSubscription -SubscriptionName  {SubscriptionName}
    #在日本西部创建资源组
    New-AzureRmResourceGroup -Name {ResourceGroupName} -Location "Japan West"
    #在日本西部创建256MB的Redis Cache,服务级别为Basic
    New-AzureRmRedisCache -ResourceGroupName {ResourceGroupName} -Name {RedisCacheName} -Location "Japan West" -Sku Basic -Size C0
    #查看已经创建好的Redis Cache
    Get-AzureRmRedisCache

     2、使用Redis Cache

    创建一个Web Application,打开NuGet控制台输入:Install-Package StackExchange.Redis或者Install-Package StackExchange.Redis.StrongName,添加对程序集的引用。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using StackExchange.Redis;
    using System.Net;
    
    namespace AspNet5_Owin
    {
        public class RedisManager
        {
            private static Lazy<ConnectionMultiplexer> lazyConnection = new Lazy<ConnectionMultiplexer>(() =>
            {
                ConfigurationOptions opt = new ConfigurationOptions
                {
                    Ssl = true,
                    AbortOnConnectFail = false,
                    Password = "{Redis Cache Keys}"
                };
                opt.EndPoints.Add(new DnsEndPoint("{Host Name}", {Ssl Port}));
                return ConnectionMultiplexer.Connect(opt);
            });
    
            public static ConnectionMultiplexer Connection
            {
                get
                {
                    return lazyConnection.Value;
                }
            }
    
            private static IDatabase cache = Connection.GetDatabase();
    
            public static void CacheSet(string key, string value)
            {
                cache.StringSet(key, value, TimeSpan.FromSeconds(10));
            }
    
            public static string CacheGet(string key)
            {
                return cache.StringGet(key);
            }
    
        }
    }

    将字符串添加到Redis Cache中并取回

    //将字符串存储到Redis Cache中
    RedisManager.CacheSet("name", "zhangsan");
    //将字符串从Redis Cache中取回
    string name = RedisManager.CacheGet("name");

    将对象添加到Redis Cache中并取回

    [Serializable]
    class
    Employee { public int Id { get; set; } public string Name { get; set; } public Employee(int EmployeeId, string Name) { this.Id = EmployeeId; this.Name = Name; } }
    RedisManager.CacheSet(
    "employee", JsonConvert.SerializeObject(new Employee(25, "Clayton Gragg"))) Employee employee = JsonConvert.DeserializeObject<Employee>(RedisManager.CacheGet("employee"))
  • 相关阅读:
    11 2
    10 29
    10 22
    dp的本质
    笛卡尔树小结
    Gitlab 备份迁移恢复报错gtar: .: Cannot mkdir: No such file or directory
    升级Jenkins版本
    当linux中的所有指令突然不能使用的时候
    合并范围
    每股收益列报计算
  • 原文地址:https://www.cnblogs.com/rampb/p/5088804.html
Copyright © 2011-2022 走看看