雖然前面兩篇已經說了redis的一些配置安裝什麼的,篇幅有點長,可能看完了也不知道怎麼操做,這裏再濃縮一下:mysql
redis徹底開源免費的,遵照BSD協議,是一個高性能的非關係型key-value數據庫,redis
能夠經過redis-cli 進入交互模式,使用config命令查看或設置配置項。也能夠進入配置文件用vim編輯器進行修改sql
啓動服務端:數據庫
啓動客戶端,keys * 查看當前數據庫裏存儲的key-valuedjango
查看數據:lrange key名 0 -1vim
先看redis的源碼,實例化Redis對象時,提供瞭如下的參數app
鏈接並添加數據編輯器
鏈接時根據當前的開發環境來設置參數,我這裏的是127.0.0.1,端口就是6379,密碼爲空,由上面的源碼得知,Redis默認就是這些參數,因此我只設置host就好了。自行根據本身的開發環境設置參數性能
set方法是兩個參數,分別是key-value,hset是三個參數,第一個是數據庫的key值,第二個和第三個是字典的key和valuespa
在運行以前數據庫的數據有這些:
運行,而後在終端查看:
查詢,利用get和hget獲取值
發現值是bytes格式,在鏈接的時候能夠加個參數讓取出來的值都是字符串:decode_responses=True
剛纔的hset是能夠再value那一層加個字典,若是還想套一層,能夠用hmset:
取值,用hmget取出來是一個列表形式,內容時改字典的value值,hgetall就是所有拿出來了
使用connectionpool來管理對一個redis server的全部鏈接,避免每次創建、釋放鏈接的資源開銷。默認,每一個Redis實例都會維護一個本身的鏈接池。能夠直接創建一個鏈接池,而後做爲參數傳給Redis實例,這樣就能夠實現多個Redis實例共享一個鏈接池
以下,後面的操做其實都是同樣的了
固然你能夠用max_connections設置最大鏈接數:
發佈者:
訂閱者:
先啓動多個訂閱者:
啓動發佈者:
訂閱者返回結果:
三個sub訂閱者返回的結果都是以下:
那麼這parse_response究竟是什麼呢,打印看看,在未接受到數據以前,它默認是1,接收到數據以後就是接收的數據
有沒有發現其實比mysql還簡單不少
經常使用方法:
set(name, value, ex=None, px=None, nx=False, xx=False) #在Redis中設置值,默認是不存在則建立,存在則修改 參數: ex,過時時間(秒)過時後值None px,過時時間(毫秒) nx,若是設置爲True,則只有name不存在時,當前set操做才執行 xx,若是設置爲True,則只有name存在時,當前set操做才執行 # 注:ex,px,nx,xx能夠跟在命令後面 eg: setnx 表示只能建立 hash命令同樣適用 get(key) 獲取key的值 mset(*args, **kwargs) 批量設置值 mget(key, *args) hset(name, key, value) 增長單個 不存在則建立 hget(name, key) 獲取單個 hmset(name, mapping) 批量增長 mapping爲字典 hgetall(name) 獲取name對應hash的全部鍵值 hlen(name) 獲取name對應的hash中鍵值對的個數 hkeys(name) 獲取name對應的hash中全部的key的值 hvals(name) 獲取name對應的hash中全部的value的值 hexists(name, key) 檢查name對應的hash是否存在當前傳入的key hdel(name,*keys) 將name對應的hash中指定key的鍵值對刪除 hscan_iter(name, match=None, count=None) 利用yield封裝hscan建立生成器,實現分批去redis中獲取數據 參數: match,匹配指定key,默認None 表示全部的key count,每次分片最少獲取個數,默認None表示採用Redis的默認分片個數 lpush(name,values) 在name對應的list中左邊添加元素 沒有就新建 llen(name) 獲取name對應的列表長度 lrang(name, index1, index2)按照index切片取出name對應列表裏值 lpushx(name, value) 只能添加不能新建 linsert(name, where, refvalue, value)) 在name對應的列表的某一個值前或後插入一個新值 參數: name,redis的name where,BEFORE或AFTER refvalue,標杆值,即:在它先後插入數據 value,要插入的數據 lset(name, index, value) 給指定索引修改值 lrem(name, value, num) 在name對應的list中刪除指定的值 參數: name,redis的name value,要刪除的值 num, num=0,刪除列表中全部的指定值; num=2,從前到後,刪除2個; num=1,從前到後,刪除左邊第1個 num=-2,從後向前,刪除2個 lindex(name, index) 在name對應的列表中根據索引獲取列表元素
固然redis還有支持django的數據庫模塊,pip install django-redis便可