zoukankan      html  css  js  c++  java
  • 浅谈Redis

    Redis,内存中的数据结构存储,作为数据库,缓存和消息代理。它支持的数据结构,如字符串、哈希表、列表、设置、排序设置范围查询,位图,hyperloglogs和半径查询地理信息的索引。

    使用内置的复制,Lua脚本,LRU逐出,磁盘上的持久性交易和不同等级,并且可以通过Redis的前哨和自动分区Redis集群高可用性。为了实现其出色的表现,Redis是工作在内存中的数据集

    实现简单的读写

    一、新建一个控制台项目

    1、NuGet安装

    2、写入

    ConnectionMultiplexer con = RedisConnection.Connection;
    IDatabase db = con.GetDatabase(1);//不写默认是连接到数据库0
    Student st = new Student { Age=12,Name="yuan",School="TaiKang"};
    db.Set("student",st);

    3、效果如图

    4、读取

                ConnectionMultiplexer con = RedisConnection.Connection;
                IDatabase db = con.GetDatabase(1);//不写默认是连接到数据库0
                Student st = new Student();
                st = db.Get<Student>("student");

    二、辅助类

    1、实体

        [Serializable]
        public class Student
        {
            public int ID { get; set; }
            public string Name { get; set; }
            public int Age { get; set; }
            public string School { get; set; }
        }

    2、链接数据库(Redis)

    public class RedisConnection
        {
    
            private static readonly Lazy<ConnectionMultiplexer> _connection = new Lazy<ConnectionMultiplexer>(() => ConnectionMultiplexer.Connect("localhost:6379"));
    
            public static ConnectionMultiplexer Connection { get { return _connection.Value; } }
        }

    3、方法

    public static class RedisExtension
        {
            public static TResult Get<TResult>(this IDatabase cache, string key)
            {
                return Deserialize<TResult>(cache.StringGet(key));
            }
    
            public static void Set<TIn>(this IDatabase cache, string key, TIn value)
            {
                cache.StringSet(key, Serialize(value));
            }
    
            static byte[] Serialize(object o)
            {
                if (o == null)
                    return null;
                BinaryFormatter binaryFormatter = new BinaryFormatter();
                using (MemoryStream mStream = new MemoryStream())
                {
                    binaryFormatter.Serialize(mStream, o);
                    byte[] objectDataAsStream = mStream.ToArray();
                    return objectDataAsStream;
                }
            }
    
            static TResult Deserialize<TResult>(byte[] stream)
            {
                if (stream == null)
                    return default(TResult);
                BinaryFormatter formatter = new BinaryFormatter();
                using (MemoryStream memStream = new MemoryStream(stream))
                {
                    TResult result = (TResult)formatter.Deserialize(memStream);
                    return result;
                }
            }
        }
  • 相关阅读:
    30天敏捷结果(2):用三个故事驱动你的一周
    30天敏捷结果(24):恢复你的精力
    30天敏捷结果(6):周五回顾,找到三件做的好以及三件需要改善的事情
    js 数组循环和迭代
    没有+求和
    js检测数组类型
    redis 在windows 下的安装和使用
    版本控制(一)——初步概念
    苹果树的故事(转发的)
    mongoDB之在windows下的安装
  • 原文地址:https://www.cnblogs.com/shiyige-216/p/8682655.html
Copyright © 2011-2022 走看看