使用缓存前先安装nuget包: StackExchange.Redis (我用的是这个,可以根据自己需要选择缓存框架)
在这里插入图片描述
注意:1.Redis 的5种类型中缓存key不可以重复,value值可以重复的只有list,其他类型的value值不可以重复
2.Redis的5种类型中除了string不是集合之外,其他都是集合类型

一:string 字符串

添加单个value缓存

 public class ProgramString
    {
        private ConnectionMultiplexer _con;
        public ProgramString()
        {
            _con = ConnectionMultiplexer.Connect("redis的账号,redis的密码");//此处写redis的账号和密码
        }
        static void Main(string[] args)
        {
            ProgramString pgStr = new ProgramString();
            IDatabase db = pgStr._con.GetDatabase(3);//GetDatabase()括号中如果不填写数字就默认是0
            var str = db.StringSet("stringKey","stringValue0603");//string类型存入缓存
            string get = db.StringGet("stringKey");//得到缓存
            //var del = db.KeyDelete("stringKey");//删除缓存key的缓存
            //Console.WriteLine("{0}", get);
            //Console.ReadLine();
        }
    }

格式
在这里插入图片描述

添加多个value缓存

 public class ProgramStringList
    {
        private ConnectionMultiplexer _con;
        public ProgramStringList()
        {
            _con = ConnectionMultiplexer.Connect("redis的账号,redis的密码");//此处写redis的账号和密码
        }
        static void Main(string[] args)
        {
            ProgramStringList programStringList = new ProgramStringList();
            IDatabase database = programStringList._con.GetDatabase(3);
            var values = new List<string> { "stringList111111", "stringList2222222" };
            database.StringSet(new KeyValuePair<RedisKey, RedisValue>[] { new KeyValuePair<RedisKey, RedisValue>("stringListKey", JsonConvert.SerializeObject(values)) });//写入缓存
            //database.KeyDelete("stringListKey");//删除缓存
        }
    }

格式
在这里插入图片描述

二:hash 哈希

添加单个hash键值缓存

public class ProgramHash
    {
        private ConnectionMultiplexer _con;
        public ProgramHash()
        {
            _con = ConnectionMultiplexer.Connect("redis的账号,redis的密码");
            
        }
        static void Main(string[] args)
        {
            ProgramHash programHash = new ProgramHash();
            IDatabase database = programHash._con.GetDatabase(3);
            var set = database.HashSet("hashKey", "hashKey06", "hashKey0610");//写入缓存
            var get = database.HashGet("hashKey", "hashKey06");//得到缓存
            //var del = database.HashDelete("hashKey", "hashKey0610");//删除(缓存key和键对应的缓存数据)
            //var del = database.KeyDelete("hashKey");//删除缓存key对应的缓存数据
        }
    }

格式
在这里插入图片描述
添加多个hash键值缓存

public class ProgramHashList
    {
        private ConnectionMultiplexer _con;
        public ProgramHashList()
        {
            _con = ConnectionMultiplexer.Connect("redis的账号,redis的密码");//此处写redis的账号和密码
        }
        static void Main(string[] args)
        {
            ProgramHashList programHashList = new ProgramHashList();
            IDatabase database = programHashList._con.GetDatabase(3);
            var hashList = new List<string> { "hashList11", "hashList22" };
            List<Info> list = new List<Info>();
            foreach (var hash in hashList)
            {
                var aa = new Info()
                {
                    Value = hash
                };

                list.Add(aa);

            }
            //一条数据
            HashEntry[] Listbb = list.Select(i => new HashEntry(i.Value, JsonConvert.SerializeObject(i))).ToArray();
            database.HashSet("hashList", Listbb);
            //foreach (var bb in Listbb)
            //{
            //    database.HashDelete("hashList", bb.Name);//删除缓存key下的缓存
            //}

        }
        public class Info
        {
            public string Value { get; set; }
        }
    }

格式
在这里插入图片描述

三:set 集合

添加单个value缓存

 public class ProgramSet
    {
        private ConnectionMultiplexer _con;
        public ProgramSet()
        {
            _con = ConnectionMultiplexer.Connect("redis的账号,redis的密码");//此处写redis的账号和密码
        }
        static void Main(string[] args)
        {
            ProgramSet programSet = new ProgramSet();
            IDatabase db = programSet._con.GetDatabase(3); //GetDatabase()括号中如果不填写数字就默认是0
            var set = db.SetAdd("setKey", "setVslue0611");//set类型存入缓存
            var get = db.SetContains("setKey", "setVslue0611");//key 和 value值在缓存中存在就可以查出true
            //var del = db.KeyDelete("setKey");//删除key对应的缓存数据
            //var del = db.SetRemove("setKey", "setVslue0610");//删除(key和value对应的缓存数据)
            Console.WriteLine("{0}", get);
            Console.ReadLine();
        }
    }

格式
在这里插入图片描述

添加多个value缓存

 public class ProgramSetList
    {
        private ConnectionMultiplexer _con;
        public ProgramSetList()
        {
            _con = ConnectionMultiplexer.Connect("redis的账号,redis的密码");//此处写redis的账号和密码
        }

        static void Main()
        {
            ProgramSetList programSetList = new ProgramSetList();
            IDatabase database = programSetList._con.GetDatabase(3);
            var values = new List<string> { "setList11", "setList22" };
            var setList = database.SetAdd("setList", values.Select(i => new StackExchange.Redis.RedisValue(i)).ToArray());
            //var del = database.SetRemove("setList", "setList22");//删除(key和value对应的缓存数据)
            //var del = database.KeyDelete("setList");//删除key对应的缓存数据
        }
    }

格式
在这里插入图片描述

四:sorted set 有序集合

public class ProgramSortSet
    {
        private ConnectionMultiplexer _con;
        public ProgramSortSet()
        {
            _con = ConnectionMultiplexer.Connect("redis的账号,redis的密码");
        }
        static void Main(string[] args)
        {
            ProgramSortSet programSortSet = new ProgramSortSet();
            IDatabase database = programSortSet._con.GetDatabase(3);
            var set = database.SortedSetAdd("sortSetKey", "sortSetValue0604", 1);//添加
            //var get = database.SortedSetRemove("sortSetKey", "sortSetValue0604");//删除
        }
    }

格式
在这里插入图片描述

五:list 列表

简介:
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边),可以使用list的push操作将任务存到List,

然后使用pop操作将任务取出执行,在列表头部或者末尾操作数据非常高效,不受队列长度的影响。

public class ProgramList
    {
        private ConnectionMultiplexer _con;
        public ProgramList()
        {
            _con = ConnectionMultiplexer.Connect("redis的账号,redis的密码");//此处写redis的账号和密码
        }
        static void Main(string[] args)
        {
            ProgramList programHashList = new ProgramList();
            IDatabase database = programHashList._con.GetDatabase(3);
            var values = new List<string> { "List133", "List244" };
            foreach (var value in values)
            {
                database.ListLeftPush("list", value);//底部插入
                //database.ListLeftPop("list");//从顶部删除
            }
        }
    }

格式
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐