关于Redis
1.简介
Redis是著名的NOSQL(Not Only SQL)数据库,是键值对结构。(我只用过键值对结构的)
他为存储键值对做了优化,在大型网站中应用广泛。Redis提供了数据的自动过期处理,而且支持集群。
适合临时存储数据,和存储一些离散的数据。
2.用途
Redis可以存储一些临时数据。可以存储一些,某一时刻有意义,但是又不值得存入数据库的数据。
同时,对于数据统计来说,用户的一次点击,一次登录,都是有意义的。但是这些大量的离散的,单个拿出来毫无意义的数据,显然不适合存储在关系型数据库中。Redis提供了解决这种问题的方案。
3.环境
说明: Redis服务器有Linux、Windows版,Linux版性能好适合生产环境,在自己的windows电脑上配只是为了学习。 不用太较真。
1)Windows下Redis服务器的安装:解压redisbin_x32.zip到硬盘;
2)安装RedisWatcher(把Redis运行为系统服务,如果安装过程有问题,直接执行redis-server 也可以),
3)然后配置RedisWatcher安装目录下的watcher.conf指向redis-server 的路径,然后到Windows 服务中启动RedisWatch。 注意watcher.conf只能用高级文本编辑器打开。
4)在项目中引用
如果想使用Redis数据库,需要在项目中添加如上的四个引用。
OK,准备工作到此,全部完成。我们开始使用的demo。
使用
1.相当于配置文件的类。
public class RedisManager
{
//注意,这个属性的写法是{ get; private set; } 外部不可写入。
public static PooledRedisClientManager ClientManager { get; private set; }
static RedisManager()
{
RedisClientManagerConfig redisConfig = new RedisClientManagerConfig();
redisConfig.MaxWritePoolSize = 128;
redisConfig.MaxReadPoolSize = 128;
/*读写分离。多台Redis组成集群
注意前两个参数,参数1表示,读写Redis的服务器地址,为字符串数组,支持多个地址,也就是支持集群。
参数2表示,读Redis的服务器,同样支持集群。
*/
ClientManager = new PooledRedisClientManager(new string[] {"127.0.0.1"},
new string[] {"127.0.0.1"}, redisConfig);
}
}
2.保存和读取
static void Main(string[] args)
{
using (IRedisClient client = RedisManager.ClientManager.GetClient())
{
//1.设置读取int对象
client.Set<int>("age",18);
client.Get<int>("age");
//2.设置读取sting对象
client.Set<string>("name","jim");
string name = client.Get<string>("name");
//3.设置读取Dictionary对象
Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add("aaa", "bbb");
client.Set<Dictionary<string, string>>("dict",dict);
client.Get<Dictionary<string,string>>(dict);
//4.赋值时,设置失效时间。
client.Set<string>("name", "rupeng", DateTime.Now.AddSeconds(30))
}
}