• .Net 5.0快速上手 Redis


    1. Redis的安装地址:

     
    2.开启服务:
    找到redis目录 打开cmd 输入redis-server.exe redis.windows.conf
    看到如下图说明服务开启成功
     
    3.基本操作:
    再开一个控制台同样是redis目录下
    redis-cli.exe -h 127.0.0.1 -p 6379
    set myKey abc(myKey即Key,abc即value,set存)
    get myKey(get读)

     

     4.Redis在C#中的实际用法:

    注意:在使用redis 缓存时,必须先启动服务 redis-server.exe redis.windows.conf
    dll文件:https://files.cnblogs.com/files/lbjlbj/dll.7z
    可能会存在ConfigurationManager会报错,还需自行搜索添加引用,
    奉上RedisHelper类
    复制代码
    /// 
        /// Redis 操作类
        /// 
        public class RedisHelper
        {
            /// 
            /// 连接字符串
            /// 
            private static readonly string _connectionStr = ConfigurationManager.ConnectionStrings["RedisConnectionString"].ConnectionString;
    
            /// 
            ////// 
            private readonly object _lock = new object();
    
            /// 
            /// 连接对象
            /// 
            private volatile IConnectionMultiplexer _connection;
    
            /// 数据库
            /// 
            private IDatabase _db;
    
    
            public RedisHelper() {
                _connection = ConnectionMultiplexer.Connect(_connectionStr);
                _db = GetDatabase();
            }
    
            /// 
            /// 获取连接
            /// 
            /// 
            protected IConnectionMultiplexer GetConnection()
            {
                if (_connection != null && _connection.IsConnected)
                {
                    return _connection;
                }
                lock (_lock)
                {
                    if (_connection != null && _connection.IsConnected)
                    {
                        return _connection;
                    }
    
                    if (_connection != null)
                    {
                        _connection.Dispose();
                    }
                    _connection = ConnectionMultiplexer.Connect(_connectionStr);
                }
    
                return _connection;
            }
    
    
            /// 
            /// 获取数据库
            /// 
            /// 
            /// 
            public IDatabase GetDatabase(int? db = null)
            {
                return GetConnection().GetDatabase(db ?? -1);
            }
    
            /// 
            /// 设置缓存
            /// 
            /// 
            /// 
            /// 设置时间
            public virtual void SetCache(string key,object data,int cacheDate)
            {
                if (data == null) return;
                var entryBytes = Serialize(data);
                var expiresIn = TimeSpan.FromMinutes(cacheDate);
                _db.StringSet(key, entryBytes, expiresIn);
            }
    
            public virtual T GetT(string key)
            {
                var rValue = _db.StringGet(key);
                if (!rValue.HasValue) return default(T);
                var result = Deserialize(rValue);
                return result;
            }
            /// 
            /// 反序列化
            /// 
            /// 
            /// 
            /// 
            protected virtual T Deserialize(byte[] serializedObject)
            {
                if (serializedObject == null)
                {
                    return default(T);
                }
                var json = Encoding.UTF8.GetString(serializedObject);
                return JsonConvert.DeserializeObject(json);
            }
            /// 
            /// 序列化
            /// 
            /// 
            /// byte[]
            private byte[] Serialize(object data)
            {
                var json = JsonConvert.SerializeObject(data);
                return Encoding.UTF8.GetBytes(json);
            }
    
            /// 
            /// 判断是否设置
            /// 
            /// 
            /// 
            public virtual bool IsSet(string key)
            {
                return _db.KeyExists(key);
            }
        }
    复制代码

    AppConfig中配置:

     
        "RedisConnectionString" connectionString="localhost"/>
      

    最后功能实现:

    复制代码
    internal class Program
        {
            static void Main(string[] args)
            {
                string data = "a";
                new RedisHelper().SetCache("abc",data,10);
                Console.WriteLine("ok");
                Console.ReadKey();
            }
        }
    复制代码

     

  • 相关阅读:
    Reactor 模式
    JAVA面试题(精选java面试题、最最基础java面试题目、java面试必备)
    数据结构-图-最小生成树问题
    Android项目升级到AndroidX
    AI学习指南机器学习篇-KNN基本原理
    《ToDesk云电脑vs青椒云性能测试,谁更能实现游戏自由?》
    官方图鉴解读丨透视小红书内容营销下半场
    RecyclerView懒加载失效问题(三)
    神经网络的数学方法及应用,神经网络的数学理论
    JDBC、ORM、mybatis之间的关系
  • 原文地址:https://www.cnblogs.com/shenweif/p/16543157.html