Redis Server分佈式緩存編程

這篇文章我將介紹若是用最簡潔的方式配置Redis Server,git

以及如何使用C#和它交互編程github

一. 背景介紹redis

Redis是最快的key-value分佈式緩存之一編程

缺點: 沒有本地數據緩衝, 目前尚未完整的數據彙集化支持windows

優勢: 配置簡單, 使用方便, 高性能,支持不一樣的數據類型(hashes, lists, sets, sorted sets)緩存

        ASP.NET WebUI for viewing content of the cache分佈式

 

二. 安裝Redis性能

1) 從github下載最新的32/64位安裝ui

https://github.com/dmajkic/redis/downloadsthis

解壓到你本身的目錄

eg: d:\RedisServer

 

2) 從github下載Redis服務程序

dll手工版

https://github.com/kcherenkov/redis-windows-service/downloads

 

安裝版

https://github.com/rgl/redis/downloads

 

拷貝到RedisServer的安裝目錄

eg: d:\RedisServer

 

3) 安裝redis服務

進入你的應用程序目錄,運行下面的命令

sc create %name% binpath= "\"%binpath%\" %configpath%" start= "auto" DisplayName= "Redis"

 

%name% -- name of service instance, ex. redis-instance;

%binpath% -- path to this project exe file, ex. C:\Program Files\Redis\RedisService_1.1.exe;

%configpath% -- path to redis configuration file, ex. C:\Program Files\Redis\redis.conf; 

 

sc create my-redis binpath= "\"D:\RedisServer\RedisService_1.1.exe\"  D:\RedisServer\redis.conf" start="auto" DisplayName= "MyRedis"

 

 

 

4) 基本配置

redis.conf

# requirepass foobared  

去掉註釋,重啓服務

這樣實例化一個Redis服務的時候,就須要密碼

RedisClient client = new RedisClient(serverHost, port, redisPassword);

Redis server replication (master - slave配置)

# slaveof <masterip> <masterport>

eg:

slaveof 192.168.1.1 6379

 

三. 客戶端編程

1) 安裝Redis包

 

2) 簡單例子

複製代碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ServiceStack.Redis;
using System.Threading;

namespace Zeus.Cache.Redis.Demo
{
    public class SimpleRedisDemo
    {
        public void SimpleDemo()
        {
            string host = "localhost";
            string elementKey = "testKeyRedis";

            using (RedisClient redisClient = new RedisClient(host))
            {
                if (redisClient.Get<string>(elementKey) == null)
                {
                    // adding delay to see the difference
                    Thread.Sleep(2000);
                    // save value in cache
                    redisClient.Set(elementKey, "default value");
                }

                //change the value
                redisClient.Set(elementKey, "fuck you value");

                // get value from the cache by key
                string message = "Item value is: " + redisClient.Get<string>(elementKey);

                Console.WriteLine(message);
            }
        }
    }
}
複製代碼


運行結果:

相關文章
相關標籤/搜索