Redis與Python在項目中的交互

##Python與Redis的交互python

###具體操做大體分爲三步: ######如下步驟全在在項目文件所在虛擬環境中進行git

  1. 安裝Redis
  2. 調用模塊
  3. 進行交互操做

#####安裝Redis的三種方法:github

  • 第一種:進入虛擬環境,聯網安裝包redis(推薦)

pip install redisredis

  • 第二種:進入虛擬環境,聯網安裝包redis

easy_install redis數據庫

  • 第三種:到中文官網-客戶端下載redis包的源碼,使用源碼安裝

一步步執行 wget http://github.com/andymccurdy/redis-py/archive/master.zip
unzip master.zip
cd redis-py-master
sudo python setup.py install服務器

#####調用模塊app

  • 引入模塊

#####from redis import StrictRedis
這個模塊中提供了StrictRedis對象(Strict嚴格),用於鏈接redis服務器,並按照不一樣類型提供 了不一樣方法,進行交互操做ui

StrictRedis對象方法:

經過init建立對象,指定參數host、port與指定的服務器和端口鏈接,host默認爲localhost,port默認爲6379,db默認爲0
sr = StrictRedis(host='localhost', port=6379, db=0)spa

  • StrictRedis根據不一樣的value類型,擁有不一樣的實例方法能夠調用,與redis命令對應,方法須要的參數 與 命令的參數一致

####以string類型爲例進行交互操做命令行

#####準備工做:

  • 在桌面上建立redis目錄
  • 使用pycharm打開 redis目錄
  • 建立redis_string.py文件


#####具體增長string類型值的代碼以下:

from redis import StrictRedis
if name=="main":
    try:
       #建立StrictRedis對象,與redis服務器創建鏈接
       sr=StrictRedis() # 默認主機本地,端口號6379,第0個庫(共16個)        #添加鍵what,值爲我好帥
       result=sr.set('what','我好帥')
       #輸出響應結果,若是添加成功則返回True,不然返回False
       print(result)
   except Exception as e:
       print(e)

#####下面是對 獲取/更改/刪除 string類型值的補充

######獲取:
result = sr.get('name')
#輸出鍵的值,若是鍵不存在則返回None
print(result)
######更改:
result = sr.set('name','itcast')
#輸出響應結果,若是操做成功則返回True,不然返回False
print(result)
######刪除: result = sr.delete('name')
#輸出響應結果,若是刪除成功則返回受影響的鍵數,不然則返回0
print(result)

同時設置/獲取多個鍵值:mset({n個鍵值對}) / mget([n個鍵])
sr.mset({'model1': '11', 'model2': '22','model3':'33'}) # 設置
	res1, res2, res3 = sr.mget(['model1', 'model2', 'model3']) # 獲取  
	print(res1,res2,res3) # 打印 '11' '22' '33'
設置過時時間:setex(鍵,時間/秒,值)
# 爲鍵值設置過時時間
    sr.setex('time', 3600, '10點整')
拼接:append('鍵','值')
# age 的初始值是19
    # 拼接值 值得結果是age爲1920
    sr.append('age', '20')

#####(2)hash類型在交互中的crud語句演示:

######設置/獲取單個: hset('key','field','value') / hget('key','filed') sr.hset('python','ma','男') # 設置 res_hx = sr.hget('python','ma') # 獲取 print(res_hx) # 打印結果:'男' ######設置/獲取多個hash值: sr.hmset('fruit',{'bnana':'yello','apple':'red','orange':'orage'}) #設置 hres1,hres2,hres3 = sr.hmget('fruit',['bnana','apple','orange']) #獲取 print(hres1,hres2,hres3) #打印結果 b'yello' b'red' b'orange' ######獲取key映射下的全部鍵值對: #獲取鍵fruit映射的全部鍵值對 res_dir = sr.hgetall('fruit') print(res_dir) # 結果{b'apple': b'red', b'bnana': b'yello',b'orange':'orange'} ######獲取key映射的鍵值對個數: nums = sr.hlen('fruit') print(nums) # 結果 3 ######刪除key field 對應的值:hdel('key','field') /與string類型有區別 sr.hdel('fruit','orange') print(exists('fruit','orange')) # 打印結果是0 1表明存在 print(exists('fruit')) # 1 由於鍵fruit還存在 映射'bnana','apple' ######查看key映射下的全部field: res = sr.hkeys('fruit') print(res) # ‘bnana’ ‘apple’ ‘orange’ ######查看key映射下的全部value res = sr.vals('fruit') print(res) # 'yellow' 'red' 'orange' #####(3)針對 鍵 的操做(適用於任何類型): exists / type / delete / expire / getrange / ttl
sr.exists('python')# 1表明存在 0表明不存在 sr.delete('python') # 刪除鍵python及其全部映射 sr.expire('python','3') # 指定python 的過時時間爲3秒 sr.ttl('python') # 查看過時時間 sr.type('python')

#####終端命令:刪除當前數據庫全部的key 執行flushdb ,刪除全部數據庫的 執行flushal #####另外,以上全部命令均適用於終端命令行(終端命令行自動提示)


######補充1:終端刪除鍵用 :del key, 不過哈希對field的刪除要用: hdel key field 完成 ######補充2:交互刪除鍵用delete('key'), 對哈希類型中field 的刪除用 hdel('key','field') ,由於在哈希類型中一個key可能對應多個field

相關文章
相關標籤/搜索