一、關於nosql:
nosql(nosql = not only sql ),"不僅僅是sql"。
相比mysql等關係型資料庫,nosql為非關係型的資料儲存
nosql中比較火的三個資料庫有:redis、memchache、mongodb。
為什麼使用nosql:
為了解決大規模資料集合多重資料種類帶來的挑戰,尤其是大資料應用難題。
易擴充套件性:nosql資料庫種類繁多,但是乙個共同的特點都是去掉關聯式資料庫的關係型特性。資料之間無關係,這樣就非常容易擴充套件。無形之間也在架構的層面上帶來了可擴充套件的能力。
高效能性:nosql資料庫都具有非常高的讀寫效能,尤其在大資料量下,同樣表現優秀。這得益於它的無關係性,資料庫的結構簡單。
二、關於redis:
remote dictionary server(redis) 是乙個由salvatore sanfilippo寫的key-value儲存系統。
redis是乙個開源的使用ansi c語言編寫、遵守bsd協議、支援網路、可基於記憶體亦可持久化的日誌型、key-value資料庫,並提供多種語言的api。
它通常被稱為資料結構伺服器,因為值(value)可以是 字串(string), 雜湊(hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等型別。
與memcached的對比:
三、redis簡單操作:
以windows下為例:
連線redis:> redis-cli.exe -h host -p port -a password # 不輸入則為預設連線
ps d:\redis> .\redis-cli.exe四、使用python實現redis發布訂閱功能:127.0.0.1:6379> ping
# 查詢redis服務是否開通
pong
127.0.0.1:6379>set test hello # 設定key的value
ok127.0.0.1:6379>get test # 查詢key
"hello
"127.0.0.1:6379>set test hi # 再次設定key即更改
ok127.0.0.1:6379>get test"hi
"127.0.0.1:6379>del test # 刪除key
(integer)
1127.0.0.1:6379>get test
(nil)
連線redis:
import發布資訊:redis
sr = strictredis(host='
localhost
',port=6379,db=0) #
不輸入為預設連線
#!/usr/bin/env訂閱資訊:python
# -*- coding:utf-8 -*-# author:riy
import redis
client =redis.redis()
channels = ["
nosql
", "
redis"]
def main():
print(
"可以發布到任意乙個頻道:")
for i in
channels:
print(i)
while
true:
ch = input("
輸入頻道:")
print(
"輸入傳送的資訊(q:退出)")
msg = input("
>>")
if msg == 'q'
: break
client.publish(ch, msg)
if __name__ == '
__main__':
main()
#設定 decode_responses = true 收到的中文資訊:!/usr/bin/env python
#-*- coding:utf-8 -*-
#author:riy
import
redis
client = redis.strictredis(decode_responses=true) #
設定編碼,不設定則為位元組流
s =client.pubsub()
name = input('
選擇監聽頻道:')
s.subscribe(name)
print('
開始監聽......\n')
for item in
s.listen():
if item['
type
'] == '
message':
print (item)
不設定則收到的 data 為位元組流:
python屬於中介軟體嗎 python中介軟體
django的中介軟體是全域性範圍內處理django的請求和響應的框架級別的鉤子。定義from django.utils.deprecation importmiddlewaremixinclassmd1 middlewaremixin defprocess request self,request...
activeMq中介軟體服務配置策略
activemq.xml 配置詳解 2 總結 想要使用非同步,在brokerurl中增加 jms.alwayssyncsend false jms.useasyncsend true,如果設定了alwayssyncsend true系統將會忽略useasyncsend設定的值都採用同步 1 當alw...
node express搭建服務,中介軟體的使用
let express require express console.log 開啟伺服器 在http.createserver上擴充套件了乙個listen方法,監聽客戶端 從上到下匹配如果匹配到了並且結束響應,就不會繼續向下走 res.setheader content type text pla...