mysql kvdb_从MYSQL到KVDB
2016年4月10日 星期日 陰,霧霾
驚悉新浪SAE又多收費(fèi)了,凡是用Mysql的應(yīng)用,每天至少要交2×24=48顆云豆的租金。新浪為什么經(jīng)常干這種事呢?用戶會不會懷疑哪天又開始另找名目多收云豆?
這跟食堂打菜員給人打菜一樣,即使都是同樣多的份量,打兩次給到位給和打一大堆到了最后又撥出來,這給人的感覺是不一樣的。
其他應(yīng)用的Mysql都關(guān)了,就剩下這個blog占的云豆比較多,一天要燒49.53顆云豆,其中Mysql就占了48顆。我的云豆不多,上面還有程序要支撐至少到2017年國慶,所以先忍了。這周斷斷續(xù)續(xù)修改程序,把這個博客的數(shù)據(jù)庫由Mysql改為純KVDB的了。
我不是很喜歡GAE的數(shù)據(jù)庫,也不喜歡Mysql,我個人比較喜歡NOSQL。我覺得NoSQL在很多場合可以適用,性能也一點(diǎn)都不差,使用也很靈活,調(diào)用簡單。
1. 可以存儲string、dict、list、list of dict等多種類型,自己組織編解碼就可以了,參考代碼如下。
2. python的list支持切片、排序,所以kvdb也可以很容易排序或者選擇部分?jǐn)?shù)據(jù)。
import sys
reload(sys)
sys.setdefaultencoding('utf-8')#不想中文報錯就加上
def encode_dict(my_dict):
newdict = {}
for k in my_dict:
newdict[str(k)] = my_dict[k].encode('utf-8') if isinstance(my_dict[k], unicode) else str(my_dict[k])
return "\x1e".join("%s\x1f%s" % x for x in newdict.iteritems())
def decode_dict(my_string):
return dict(x.split("\x1f") for x in my_string.split("\x1e"))
# 編碼list
def encode_list(my_list):
return "\x1e".join(str(x) for x in my_list)
# 解碼list
def decode_list(my_string):
return list(my_string.split("\x1e"))
# 編碼字典list
def encode_dictlist(my_list):
return "\x1a".join(encode_dict(x) for x in my_list)
# 解碼字典list
def decode_dictlist(my_string):
tmplist = []
for item in my_string.split("\x1a"):
tmplist.append(decode_dict(item))
return tmplist
博客代碼回頭等測試差不多了,我再整理新的程序開源到Github上。
總結(jié)
以上是生活随笔為你收集整理的mysql kvdb_从MYSQL到KVDB的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql中当前时间九点_MySQL 获
- 下一篇: EXC_BAD_ACCESS