浅谈Redis
Posted 之广
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈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; } } }
以上是关于浅谈Redis的主要内容,如果未能解决你的问题,请参考以下文章