• 那点所谓的分布式——redis


         日常开发中,总会接触到一些好玩的东西,比如这篇的redis,一说到redis,可能就有人跟memcache做比较了,是呀,

    memcache只能说是简单的kv内存数据结构,而redis支持的数据类型就丰富多了,当然最能让人看上眼的就是SortedSet。

    有了它,我们就可以玩一些“贪心”的问题,比如适合“贪心”的优先队列,说到优先队列,我们以前实现了仅仅是内存形式的,

    哎,内存毕竟是内存,当有海量数据的时候,最好能有一个序列化到硬盘的操作。。。恰恰这个场景redis就可以办到。。。

    一:快速搭建

        好了,我们知道redis比较适合做的事情了,现在我们可以进行快速搭建。

    第一步:下载redis-2.0.2.zip (32 bit)。然后改名为redis放在D盘中。

    最重要的也就是下面两个:

    redis-server.exe:        这个就是redis的服务端程序。

    redis-cli.exe:             服务端开启后,我们的客户端就可以输入各种命令测试了。

    从图中我们可以看到两点:

    ①:没有指定config file。

         原来redis建议我们做一个配置文件,那我就搞段配置。

    daemonize:  是否以“守护进程”的方式开启,当是守护进程的时候就不受控制台的影响了。

    logfile:         log文件位置。

    database:    开启数据库的个数。

    dbfilename:  数据快照文件名。

    save * *:     保存快照的频率,第一个为时间,第二个为写操作。

    将这些配置好后,我们再看看:

    ②:我们看到redis默认的开放端口为6379。

    二:安装驱动

    好了,redis已经搭建完毕了,现在我们就要用C#去操作redis,这也是我最渴望的功能,优先队列~,先下载C#驱动

    就可以看到如下3个dll。

    最后我们做下小测试:

     1     class Program
     2     {
     3         static void Main(string[] args)
     4         {
     5             var client = new RedisClient("127.0.0.1", 6379);
     6 
     7             //最后一个参数为我们排序的依据
     8             var s = client.AddItemToSortedSet("12", "百度", 400);
     9 
    10             client.AddItemToSortedSet("12", "谷歌", 300);
    11             client.AddItemToSortedSet("12", "阿里", 200);
    12             client.AddItemToSortedSet("12", "新浪", 100);
    13             client.AddItemToSortedSet("12", "人人", 500);
    14 
    15             //升序获取最一个值:"新浪"
    16             var list = client.GetRangeFromSortedSet("12", 0, 0);
    17 
    18             foreach (var item in list)
    19             {
    20                 Console.WriteLine(item);
    21             }
    22 
    23             //降序获取最一个值:"人人"
    24             list = client.GetRangeFromSortedSetDesc("12", 0, 0);
    25 
    26             foreach (var item in list)
    27             {
    28                 Console.WriteLine(item);
    29             }
    30 
    31             Console.Read();
    32         }
    33     }

    AddItemToSortedSet: 第三个参数也就是我们要排序的依据,这也非常适合我们做topK的问题,非常爽~

  • 相关阅读:
    Golang的值类型和引用类型的范围、存储区域、区别
    ubuntu下ssh使用 与 SCP 使用
    ubuntu 搭建svn服务器
    Java中Math类的几个四舍五入方法的区别
    mongoDB 批量更改数据,某个字段值等于另一个字段值
    mongoDB 查询附近的人的语句
    mongodb常用操作语句
    JAVA 根据经纬度算出附近的正方形的四个角的经纬度
    JAVA 计算地球上任意两点(经纬度)距离
    Mongodb数据备份恢复
  • 原文地址:https://www.cnblogs.com/huangxincheng/p/3013407.html
Copyright © 2020-2023  润新知