Redis
Posted pealy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis相关的知识,希望对你有一定的参考价值。
由于之前项目中用到过,所以今天想整理下Redis的用法
Redis是一个NoSQL的键值对缓存机制,它大致有如下优点,易配置,简单应用,高性能,支持不同数据类型。
redis 的安装:
下载Binaries:https://github.com/dmajkic/redis/downloads 下载Redis service complied: https://github.com/kcherenkov/redis-windows-service/downloads
拷贝解压他们到:C:\\Program Files\\Redis, 最后能看到一个类似的目录结构i如下:
跳转到redis exe所在的目录结构,执行以下命令创建redis service:sc create %name% binpath= "\\"%binpath%\\" %configpath%" start= "auto" DisplayName= "Redis"
%name%
-- name of service instance, example: redis-instance;
%binpath%
-- path to this project EXE file, example: C:\\Program Files\\Redis\\RedisService_1.1.exe;
%configpath%
-- path to redis configuration file, example: C:\\Program Files\\Redis\\redis.conf;
example:sc create Redis start= auto DisplayName= Redis binpath= "\\"C:\\Program Files\\Redis\\RedisService_1.1.exe\\ " \\"C:\\Program Files\\Redis\\redis.conf\\""
运行完后就能得到service安装成功的提示,进入到service里面也可以看到已经在运行的名为Redis的service。
-怎么通过C# code应用Redis的缓存机制。
首先通过VS里面的Nuget Package安装 ServiceStack.Redis
用redis Set/Get 的代码片段如下:
还有一些ASP.NET session integration 以及 Web UI for viewing content of the cache的用法参见:https://www.codeproject.com/Articles/636730/Distributed-Caching-using-Redis
最后附上一些项目实践中对redis应用的代码:
public static void SetKey<T>(string m_skey, T m_sValue) { using (var client = new RedisClient(Host)) { if (!client.ContainsKey(m_skey)) { client.Add<T>(m_skey, m_sValue); } } } public static void ReSetKey<T>(string m_skey, T m_sValue) { using (var client = new RedisClient(Host)) { client.Set(m_skey, m_sValue); } } public static dynamic GetKey<T>(string m_skey) { using (var client = new RedisClient(Host)) { if (client.ContainsKey(m_skey)) { return client.Get<T>(m_skey); } else { return null; } } } public static void Initialize(string m_sHost) { Host = m_sHost; FlushAll(); } public static void SelfIncrement(string m_skey) { using (var client = new RedisClient(Host)) { if (client.ContainsKey(m_skey)) { client.IncrementValue(m_skey); } } } public static int GetFileNum(string m_skey) { int result = 0; using (var client = new RedisClient(Host)) { if (client.ContainsKey(m_skey)) { result = client.Get<int>(m_skey); } } return result; } public static int IncreaseFileNum(string m_skey) { lock (locker) { int result = 1; using (var client = new RedisClient(Host)) { if (client.ContainsKey(m_skey)) { result = client.Get<int>(m_skey); } client.IncrementValue(m_skey); } return result; } }
还有对redis操作的一些基本命令:
redis-server --service-install redis.windows.conf
pause
redis-server --service-start
pause
redis-server --service-stop
pause
redis-server --service-uninstall
pause
以上是关于Redis的主要内容,如果未能解决你的问题,请参考以下文章