.NET中Redis的使用

.NET中Redis的使用

  • 一 Redis的配置
  • 二 Redis的簡單使用
  • 三 Redis的應用

一、 Redis的配置

1.下載Redis代碼,地址:https://github.com/MSOpenTech/redis

2.解壓後用Visual Studio 2013 打開\msvs\RedisServer.sln並進行編譯,此爲C++項目,需用C++編譯器編譯。

3.選擇所需要的版本編譯,把編譯好的Release文件拷貝到你所要安裝的目錄,然後把\msvs\setups\documentation中的redis.windows.conf拷貝到Release文件中。
這裏寫圖片描述
如將文件拷貝到C盤中,把文件重命名爲Redis-2.8,即爲C:\Redis-2.8

4.打開控制檯程序 cmd.exe

(1)安裝:輸入 c:\Redis-2.8\redis-server –service-install redis.windows.conf –loglevel verbose

(2)開啓服務:輸入 c:\Redis-2.8\redis-server –service-start

(3)關閉服務: 輸入 c:\Redis-2.8\redis-server –service-uninstall

二 Redis的簡單使用

現在再開一個控制檯應用程序連接之前啓動的Redis,如下:

C:\Redis-2.8>redis-cli.exe -h 127.0.0.1 -p 6379
其中 –h後面是本機的ip地址,後面的是端口。

然後就可以執行set 給key爲city賦值:

127.0.0.1:6379> set city FoShan
通過get可以獲取指定key爲city的值了。

127.0.0.1:6379> get city
這裏寫圖片描述

三 Redis的應用

1. 下載ServiceStack.Redis地址:https://github.com/ServiceStack/ServiceStack.Redis

2.解壓後打開\src\ServiceStack.Redis.sln解決方案,編譯後,將\src\ServiceStack.Redis\bin\Debug下的4個dll文件引用到新建的RedisClientDemo項目中。

3. Redis的一些簡單運用

public partial class _Default : System.Web.UI.Page
{
    static RedisClient redisClient = new RedisClient("127.0.0.1", 6379);//redis服務IP和端口
    protected void Page_Load(object sender, EventArgs e)
    {
        StringBuilder str = new StringBuilder();
        str.Append(redisClient.Get<string>("city"));

        //將字符串列表添加到redis
        List<string> storeMembers = new List<string>() { "one", "two", "three" };
        storeMembers.ForEach(x => redisClient.AddItemToList("additemtolist", x));

        //得到指定的key所對應的value集合
        var members = redisClient.GetAllItemsFromList("additemtolist");
        members.ForEach(s => str.Append("<br/>additemtolist :" + s));

        // 獲取指定索引位置數據
        var item = redisClient.GetItemFromList("addarrangetolist", 2);
        str.Append(item);

         //移除數據
        var list = redisClient.Lists["addarrangetolist"];
        list.Clear();//清空
        list.Remove("two");//移除指定鍵值
        //  list.RemoveAt(2);//移除指定索引位置數據

        //存儲對象(JSON序列化方法)它比object序列化方法效率高
        redisClient.Set<UserInfo>("userinfo", new UserInfo() { UserName = "李四", Age = 45 });
        UserInfo userinfo = redisClient.Get<UserInfo>("userinfo");
        str.Append("<br/>name=" + userinfo.UserName + " age=" + userinfo.Age);

        //存儲值類型數據
        redisClient.Set<int>("my_age", 12);//或redisClient.Set("my_age", 12);
        int age = redisClient.Get<int>("my_age");
        str.Append("<br/>age=" + age);

        //object序列化方式存儲
        var ser = new ObjectSerializer();    //位於namespace ServiceStack.redisClient.Support;
        bool result = redisClient.Set<byte[]>("userinfo2", ser.Serialize(new UserInfo() { UserName = "張三", Age = 12 }));
        UserInfo userinfo2 = ser.Deserialize(redisClient.Get<byte[]>("userinfo2")) as UserInfo;
        str.Append("<br/>name=" + userinfo2.UserName + " age=" + userinfo2.Age);

        //也支持列表
        List<UserInfo> userinfoList = new List<UserInfo> 
        {
            new UserInfo{UserName="zzl",Age=1,Id=1},
            new UserInfo{UserName="zhz",Age=3,Id=2},
        };
        redisClient.Set<byte[]>("userinfolist_serialize", ser.Serialize(userinfoList));
        List<UserInfo> userList = ser.Deserialize(redisClient.Get<byte[]>("userinfolist_serialize")) as List<UserInfo>;
        userList.ForEach(i =>
        {
            str.Append("<br/>name=" + i.UserName + " age=" + i.Age);
        });

        p1.InnerHtml = str.ToString();
    }
}

[Serializable]
public class UserInfo
{
    public int Id { get; set; }
    public string UserName { get; set; }
    public int Age { get; set; }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章