SNS网站都有一个功能,就是好友推荐(或者Follower推荐)。例如,在人人网上出现的“你可能认识的人”。怎么来实现呢,有一个很简单的办法。如果小刚和小明不是好友,但是他们有很多的共同好友。那么可以认为,A和B很可能相识。下面学步园小编来讲解下怎样用Map/Reduce来做好友推荐?
怎样用Map/Reduce来做好友推荐
从图论的讲法上看,就是先列出一个人(记为小A)的所有朋友的朋友,在寻找小A和这些人之间有多少长度为2的...
阅读全文
相信对各位人生苦短用python的同学是一个好的入门例子。例子说明:其中虽然用了follow和block等字眼,但是他的关系不是一个微博系统的单向关注,而是类似SNS的双向关系。下面学步园小编来讲解下怎样用Redis存储好友关系-python版?
怎样用Redis存储好友关系-python版
I've been thinking lately about how perfect Redis would be for storing a
simple social graph. I posited that it would be relatively fe...
阅读全文
现在MapReduce貌似已经开始变成标配了,当然还有一种说法就是已经烂大街了。今天要提到这个是一个纯python编写的MapReduce引擎,整个引擎只有一个python文件。下面学步园小编来讲解下MapReduce引擎怎么实现?
MapReduce引擎怎么实现
使用例子见下,只需要import一个名即可。
#!/usr/bin/env python
import mincemeat
data = ["Humpty Dumpty sat on a wall",
"Humpty Dumpty had a great fall",
...
阅读全文
众所周知,Redis是一个内存数据库,和Memcached类似,所有数据存在内存中,当然,Redis有rdb和appendonlyfile两个落地文件,可以对断电停机等故障下的数据恢复做一些保证.但是到2.0版本之前,Redis的所有数据在运行时都完全是内存读写。下面学步园小编来讲解下Redis的Virtual Memory是什么?
Redis的Virtual Memory是什么
在2.0的测试版本中已经包含VM的测试版代码,但实际上此功能已经比较成熟.使用方法是将配置文件中的vm-...
阅读全文
在Redis配置文件中有一个叫appendonly的选项,可以写yes或no.这个选项就是负责是否开启AOF日志的开关.AOF日志,你可以简单理解为MySQL binlog一样的东西,作用就是记录每次的写操作,在遇到断电等问题时可以用它来恢复数据库状态.但是他不是bin的,而是text的.一行一行,写得很规范.如果你是一台redis,那你也能人肉通过它恢复数据。下面学步园小编来讲解下aof(append only file)日志文件有哪些用处?
aof(append only fi...
阅读全文
如果你长期使用MySQL而对MongoDB跃跃欲试,这篇简单的文章可以帮助你更快的进入角色。下面学步园小编来讲解下MySQL的常用SQL语句在MongoDB中有哪些写法?
MySQL的常用SQL语句在MongoDB中有哪些写法
查询:
MySQL:
SELECT * FROM user
Mongo:
db.user.find()
MySQL:
SELECT * FROM user WHERE name = ’starlee’
Mongo:
db.user.find({‘name’ : ’starlee’})
插入:
MySQL:
...
阅读全文
在MySQL中,慢查询日志是经常作为我们优化数据库的依据,那在MongoDB中是否有类似的功能呢?答案是肯定的,那就是Mongo Database Profiler.不仅有,而且还有一些比MySQL的Slow Query Log更详细的信息。下面学步园小编来讲解下Mongo Database Profile怎么开启Profiling 功能?Mongo Database Profile怎么优化?
Mongo Database Profile怎么开启Profiling 功能
有两种方式可以控制 Profiling 的开关和级别,第一种是直接...
阅读全文
索引能提高检索数据的速度,你可以想像成在MySQL中创建索引一样,同样索引也是用B-Tree也实现的。下面学步园小编来讲解下MongoDB的各种索引有哪些用法?
MongoDB的各种索引有哪些用法
1.单列索引
在字段x上创建索引,1 (ascending) or -1 (descending)
> db.data.ensureIndex({x:1})
显示表data里面的所有索引
> db.data.getIndexes()
[
{
"name" : "_id_",
"ns" : "recommender.da...
阅读全文
值得说一下的是Cassandra的存储机制,也是借鉴了Bigtable的设计,采用Memtable和SSTable的方式。和关系数据库一 样,Cassandra在写数据之前,也需要先记录日志,称之为commitlog ,然后数据才会写入到Column Family对应的Memtable中,并且Memtable中的内容是按照key排序好的。Memtable是一种内存结构,满足一定条件后批量刷新到 磁盘上,存储为SSTable。下面学步园小编来讲解下Cassandra存储有哪些机制?
Cassandra存储...
阅读全文
提起NoSQL这个话题,仿佛不应该是DBA要关注的事,而是架构师应该关心的。但是作为一名DBA,在使用传统的关系型思想建模时,应该有必要了解NoSQL的建模方法。下面学步园小编来讲解下Cassandra特点有哪些?怎样理解Cassandra的数据模型?
Cassandra特点有哪些
1.灵活的schema,不需要象数据库一样预先设计schema,增加或者删除字段非常方便(on the fly)。
2.支持range查询:可以对Key进行范围查询。
3.高可用,...
阅读全文