python淺學 網路服務中介軟體 之Redis

2022-08-24 08:48:09 字數 2792 閱讀 3464

一、關於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

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)

四、使用python實現redis發布訂閱功能:

連線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()

訂閱資訊:

#

!/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)

設定 decode_responses = true 收到的中文資訊:

不設定則收到的 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...