欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

.NET中Redis的使用

程序员文章站 2022-05-19 13:38:43
...

.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文件中。
.NET中Redis的使用
如将文件拷贝到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
.NET中Redis的使用

三 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; }
}
相关标签: Redis