Redis 是一个开源的使用 ANSI C语言编写的支持网络、可基于内存也可持久化的日志型、Key-Value 数据库。git
经常使用它来存储缓存数据,能很是轻松的实现缓存过时刷新机制。github
多种语言均可以链接到 Redis 数据库服务器,本文将推荐一个很是简洁的 C# 链接 Redis 数据库的开源项目。redis
一般,C# 使用 Redis 会推荐使用添加 NuGet 包 StackExchange.Redis 的方式来使用。数据库
使用时代码形式以下:缓存
ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("127.0.0.1:6379,password=CeshiPassword"); IDatabase db = redis.GetDatabase(); string value = "name"; db.StringSet("mykey", value); Console.WriteLine(db.StringGet("mykey"));
我的以为,其使用方式不够直观。
如 ConnectionMultiplexer 这个名称不是可猜想的,甚至看到它也想不起它与 Redis 有什么关系。而后,从最简使用的角度,它还须要用户了解到里边 Database 的概念。服务器
项目地址:https://github.com/ctstone/csredis网络
其名称接地气,使用方便,形式以下。spa
using (var redis = new RedisClient("localhost")) { redis.Auth("password"); redis.Set("mykey", "name", 25); // 有效期25秒 Console.WriteLine(redis.Get("mykey")); }
这里进行简单的封装,使得使用时只关心键与值,以及其有效时长,这样同样,普通的 token 缓存场景就能够知足了。日志
public class RedisHelper { private static RedisClient _RedisCli; private static RedisClient RedisCli { get { if (_RedisCli == null) { _RedisCli = new RedisClient("192.168.0.100"); _RedisCli.Auth("redispassword"); } return _RedisCli; } } /// <summary> /// 取得缓存值 /// </summary> /// <param name="key"></param> /// <returns></returns> public static string GetKey(string key) { return RedisCli.Get(key); } /// <summary> /// 保存值并设置有效期(second) /// </summary> /// <param name="key"></param> /// <param name="value"></param> /// <param name="expireSeconds"></param> public static void SetKey(String key, String value, int expireSeconds) { RedisCli.Set(key, value, expireSeconds); } }