Redis学习笔记之一 : 配置redis

2019-11-23 15:22 来源:未知

回到目录

Redis 简介

Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
Redis支持数据的备份,即master-slave模式的数据备份。

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。[1]
Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。
redis的官网地址,非常好记,是redis.io。(特意查了一下,域名后缀io属于国家域名,是british Indian Ocean territory,即英属印度洋领地)

Redis 优势

性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

一 一个Repository数据库操作基类,提供了通用的操作属性和方法

1 namespace Data
2 {
3     public abstract class RepositoryBase
4     {
5         protected static RedisClient_SortedSet redisClient = new RedisClient_SortedSet();
6         public static DataClasses1DataContext db = new DataClasses1DataContext();
7     }
8 }

一、安装redis

参考:
下载地址:

二 接口定义操作规范

 1 namespace Data
 2 {
 3     /// <summary>
 4     /// 接口规范
 5     /// </summary>
 6     /// <typeparam name="TEntity"></typeparam>
 7     public interface IRepository<TEntity> where TEntity : class
 8     {
 9         IQueryable<TEntity> GetModel();
10     }
11 }

Windows安装

解压文件到E盘,并重命名为redis,运行dos,切换目录到redis下,
运行:redis-server.exe redis.windows.conf
图片 1
新打开一个窗口,切换到redis目录下并运行redis-cli.exe -h 127.0.0.1 -p 6379
设置键值对 set myKey abc
取出键值对 get myKey
图片 2

三 提供不同的实现接口的方式

 1 namespace Data.Sql //使用SQL实现查询
 2 {
 3     public class PersonRepository : RepositoryBase, IRepository<Res_Item>
 4     {
 5         #region IRepository<Res_Item> 成员
 6 
 7         public IQueryable<Res_Item> GetModel()
 8         {
 9             return db.Res_Item.Select(i => new Res_Item_Ext
10             {
11                 ID = i.ID,
12                 Name = i.Name,
13                 PackageTime = i.PackageTime,
14             });
15         }
16 
17         #endregion
18     }
19 }
20 
21 namespace Data.Redis //使用Redis实现查询
22 {
23     public class PersonRepository : RepositoryBase, IRepository<Res_Item>
24     {
25 
26         #region IRepository<Res_Item> 成¨|员?à
27 
28         public IQueryable<Res_Item> GetModel()
29         {
30             return redisClient.GetList("Res_Item").Cast<Res_Item>().ToList().AsQueryable();
31         }
32 
33         #endregion
34     }
35 }

Linux安装

下载地址:,下载最新文档版本。
本教程使用的最新文档版本为 2.8.17,下载并安装:

$ wget http://download.redis.io/releases/redis-2.8.17.tar.gz
$ tar xzf redis-2.8.17.tar.gz
$ cd redis-2.8.17
$ make

make完后 redis-2.8.17目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli,两个程序位于安装目录 src 目录下:
下面启动redis服务.

$ cd src
$ ./redis-server

注意这种方式启动redis 使用的是默认配置。也可以通过启动参数告诉redis使用指定配置文件使用下面命令启动。

$ cd src
$ ./redis-server redis.conf

redis.conf是一个默认的配置文件。我们可以根据需要使用自己的配置文件。
启动redis服务进程后,就可以使用测试客户端程序redis-cli和redis服务交互了。 比如:

$ cd src
$ ./redis-cli
redis> set foo bar
OK
redis> get foo"bar"

四 实体类,由于要被序列化,所以redis需要你的实体类标有Serializable特性

1    [Serializable]
2     public partial class Res_Item { }
3     [Serializable]
4     public class Res_Item_Ext : Res_Item
5     {
6 
7     }

 

二、配置redis

Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf。

通过CONFIG查看命令或设置配置项。
例如:
图片 3
获取所有配置项
图片 4

修改配置
修改redis.conf 或 使用config set 命令修改配置
图片 5

配置就完成了。

五 如何在BLL层去调用你的redis数据库

 1  #region 从数据库中建立一个redis缓存对象
 2 
 3             try
 4             {
 5                 rds.SelectDB(2);
 6                 new Data.Sql.PersonRepository().GetModel().Take(10).ToList().ForEach(i =>
 7                 {
 8                     rds.Add("Res_Item", i.ID, i);
 9  
10                 });
11                 rds.BackgroundSave();//异步序列化到磁盘
12             }
13             catch (Exception)
14             {
15 
16                 throw;
17             }
18             #endregion
19 
20             #region
21             new Data.Redis.PersonRepository().GetModel().ToList().ForEach(i => Console.WriteLine(i.ID + i.Name + i.PackageTime));
22   #endregion

 

回到目录

TAG标签:
版权声明:本文由32450新蒲京网站发布于葡萄游戏厅_棋牌游戏,转载请注明出处:Redis学习笔记之一 : 配置redis