额外载入配置文件。
  打开Redis服务
  打开命令行进入MasterRedis文件夹目录。比如我下载的文件夹路径为 E:RedisRedisFull,在命令行输入:

  接着输入:

  此时会看到进程里多了一个

  说明Redis服务开启成功。
  Redis主从服务简介
  Redis主从服务原理:
  在Slave启动并连接到Master之后,它将主动发送一个SYNC命令。此后Master将启动后台存盘进程,同时收集所有接收到的用于修改数据集的命令,在后台进程执行完毕后,Master将传送整个数据库文件到Slave,以完成一次完全同步。而Slave服务器在接收到数据库文件数据之后将其存盘并加载到内存中。此后,Master继续将所有已经收集到的修改命令,和新的修改命令依次传送给Slaves,Slave将在本次执行这些数据修改命令,从而达到终的数据同步。如果Master和Slave之间的链接出现断连现象,Slave可以自动重连Master,但是在连接成功之后,一次完全同步将被自动执行。
  Redis主从服务注意事项:
  1). 同一个Master可以同步多个Slaves。
  2). Slave同样可以接受其它Slaves的连接和同步请求,这样可以有效的分载Master的同步压力。
  3). Master Server是以非阻塞的方式为Slaves提供服务,所以在Master-Slave同步期间,客户端仍然可以提交查询或修改请求。
  4). Slave Server同样是以非阻塞的方式完成数据同步。在同步期间,如果有客户端提交查询请求,Redis则返回同步之前的数据。
  5). 为了分载Master的读操作压力,Slave服务器可以为客户端提供只读操作的服务,写服务仍然必须由Master来完成。
  6). Master可以将数据保存操作交给Slaves完成,从而避免了在Master中要有独立的进程来完成此操作。
  Redis主从服务配置
  打开SlaveRedis文件夹,修改redis.conf文件的port项,修改值任意,但是不能和主服务的port相同(下载的完整包中我已经修改过),bind项改为主服务器的IP(本地测试改为127.0.0.1),slaveof项改为127.0.0.1 6379(已改)。
  打开命令行输入命令:
  会发现进程中有2个redis-server.exe进程。
  Redis主从同步C#代码测试
  首先下载Redis的C#组件,用于操作Redis数据库。
  Redis4C#包下载
  新建一个控制台项目。
  添加Redis4C#包内3个程序集的引用。
  添加测试代码。
1        var client = new RedisClient("127.0.0.1", 6379);
2             client.Set<string>("6379_1", "test");
3             client.Set<string>("6379_2", "test");
4  5             string name = client.Get<string>("6379");
6             Console.WriteLine(name);
7
8             //Redis队列
9             client.EnqueueItemOnList("jayjay", "12345");
10             client.EnqueueItemOnList("jayjay", "12345");
11 12
13             int length1 = client.GetListCount("jayjay");
14             for (int i = 0; i < length1; i++)
15             {
16                 Console.WriteLine(client.DequeueItemFromList("jayjay"));
17             }
18
19
20             //Redis压栈出栈
21             client.PushItemToList("name", "jayjay6379");
22             client.PushItemToList("name", "jayjay6379");
23
24             int length2 = client.GetListCount("name");
25             for (int i = 0; i < length2; i++)
26             {
27                 Console.WriteLine(client.PopItemFromList("name"));
28             }
29
30             Console.ReadKey();
  运行代码。
  将主服务端口6379改为从服务端口6381,读出刚刚放入的数据,例如:
  1             var client = new RedisClient("127.0.0.1", 6381);
  2             string name = client.Get<string>("6379_1");
  3             Console.WriteLine(name);
  能读到说明主服务保存的数据已经同步到从服务中。
  PS:1.Redis文件夹路径中不能出现中文(命令行采用的是ANSIC编码,中文会出错)!
  2.dump.rdb是数据快照文件,主服务的数据快照并不会立即同步到从服务的数据快照中!
  本文是我在学习Redis时的一些积累,目的是和各种园友分享经验,如果有什么错误或者不完善的地方欢迎大家指出!