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.高可用,...
閱讀全文