那点所谓的分布式——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的问题,非常爽~
相关文章
- MySQl出现ERROR 1045 (28000): Access denied for user 'root'@'localhost'解决方法
- TornadoFx学习笔记(1)——常用的代码片段
- 蓝奏云批量下载工具的实现思路笔记
- spring boot 自动装载对象为null问题的解决
- stars-one原创工具——蓝奏云批量下载工具
- 打造m3u8视频(流视频)下载解密合并器(kotlin)
- stars-one原创工具——m3u8视频下载合并器(kotlin)
- Spring框架学习笔记(7)——Spring Boot 实现上传和下载
- Spring框架学习笔记(6)——阿里云服务器部署Spring Boot项目(jar包)
- Spring框架学习笔记(5)——Spring Boot创建与使用
- Spring框架学习笔记(4)——SSM整合以及创建Maven自定义模版骨架
- Spring框架学习笔记(3)——SpringMVC框架
- Spring框架学习笔记(1)——控制反转IOC与依赖注入DI
- stars-one的原创工具——APK签名验证破解工具
- Mybatis使用入门,这一篇就够了
- Kotlin学习快速入门(5)——空安全
- Kotlin学习快速入门(4)——集合使用
- Kotlin学习快速入门(3)——类 继承 接口
- Kotlin学习快速入门(2)——条件 数组 循环 方法
- Kotlin学习快速入门(1)——基本数据类型以及String常用方法使用