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(); } }
