python(十二)python操作redis

來源:互聯網
上載者:User

標籤:是什麼   imp   雜湊   list   操作   div   ack   ems   test   

1、python要操作redis 首先需要安裝redis模組,然後匯入才能使用

      安裝:pip install redis

      匯入:import redis

2、串連redis

      r = redis.Redis(host=‘192.168.21.129‘,password=‘123456‘,db=1,port=6379)

      password在設定檔redis.conf中查看,port一般是6379,db可根據需要操作的資料庫進行選擇

3、redis的增刪改查

     redis中key所儲存的實值型別有多種,主要說明string類型和hash類型。用命令   redis 127.0.0.1:6379> TYPE KEY_NAME可查看值的儲存類型。 

以下是針對string類型的操作r.set(‘user3‘,‘e10adc3949ba59abbe56e057f20f883e‘)#資料庫裡面新增一個值,修改也是setr.setex(‘user1‘,‘e10adc3949ba59abbe56e057f20f883e‘,300)#資料庫裡新增一個值,並且設定key的失效時間,最後這個參數是秒r.set(‘session:user1‘,{"seessionid":"a5dfcb047721e02a6f8bff779c856165","login_time":"201805081820"})#新增值,值都在一個session檔案夾裡面儲存print(r.get(‘user1‘))#擷取對應key的值,返回的類型是byte類型,需要解碼print(r.get(‘user1‘).decode())#擷取到的value值解碼print(r.get(‘session:user1‘).decode())print(r.keys())#擷取所有的key,存在一個list裡面,元素是byte類型,如:[b‘user3‘, b‘user1‘, b‘session:user1‘]#擷取所有的key,並且解碼輸出list = [k.decode() for k in r.keys()]print(list)  #輸出如:[‘user3‘, ‘user1‘, ‘session:user1‘]r.delete(‘user3‘)#刪除指定的key#刪除所有的key需要迴圈for k in r.keys():    r.delete(k)
以下是雜湊類型  hash操作,嵌套字典r.hset(‘info‘,‘張三‘,‘北京,本科,測試工程師‘)#hash類型儲存方式會有兩個key,大key(info)和小key(張三),但無法設定小key的失效時間r.hset(‘info‘,‘李四‘,‘湖北,博士,Boss‘)r.hset(‘info‘,‘王五‘,‘江西,博士,CEO‘)r.hset(‘login_mll‘,‘test1‘,‘{"seessionid":a5dfcb047721e02a6f8bff779c815165,"login_time":201805051820}‘)print(r.hget(‘info‘,‘張三‘).decode())  #指定大key和小key擷取對應的資料print(r.hgetall(‘info‘))  #擷取裡面所有的k和-v,所有的K,V儲存在字典裡,但是是byte類型# 擷取裡面所有的k和-v,所有的K,V儲存在字典裡,並且解碼輸出info  = r.hgetall(‘info‘)new_info = {}for k,v in info.items():    new_info[k.decode()] = v.decode()print(new_info)r.hdel(‘info‘,‘張三‘)  #刪除指定keyr.delete(‘info‘)  #刪除整個keyr.expire(‘info‘,100) #第一個key設定失效時間,無法設定小key的失效時間print(r.ttl(‘info‘))#擷取key的失效時間print(r.type(‘info‘))  #查看key是什麼類型的

小練習:將資料庫中某個表的資料匯入到redis中

分析:1、連資料庫,查到資料庫裡面所有的資料,遊標類型要用pymysql.curosrs.DictCour

           2、查到所有資料 [ {"id":1,"passwd":"49487dd4f94008a6110275e48ad09448","username":"niuhayang","is_admin":1}]
          3、迴圈這個list,取到usernamer,把username當做key
          4、再把這個小字典轉成json,存進去就ok。

import pymysql,json,redisr = redis.Redis(host=‘118.24.3.40‘,password=‘HK139bc&*‘,db=1,port=6379)conn = pymysql.connect(host=‘118.24.3.40‘,user=‘jxz‘,passwd=‘123456‘,db=‘jxz‘,charset=‘utf8‘)cur = conn.cursor(cursor=pymysql.cursors.DictCursor)cur.execute(‘select * from my_user;‘)all_data = cur.fetchall()  #資料庫某表裡面所有資料,輸出為list形式,list中每個元素為表中的每行資料,每行資料為字典形式#如:[{‘username‘: ‘niuniu‘, ‘is_admin‘: 0, ‘id‘: 0, ‘passwd‘: ‘niuniu‘}, {‘username‘: ‘xiaohei1234‘, ‘is_admin‘: 0, ‘id‘: 0, ‘passwd‘: ‘aA123456‘}, {‘username‘: ‘gyx‘, ‘is_admin‘: 0, ‘id‘: 0, ‘passwd‘: ‘123456‘}
for data in all_data: #data為表中每行資料,是字典 k = data.get(‘username‘) #將username的值擷取,作為小key r.hset(‘stu_info_mkk‘,k,json.dumps(data)) #將data字典轉為json字串,新增到redis中cur.close()conn.close()

 

      

python(十二)python操作redis

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.