1. 程式人生 > >對Redis的學習與應用

對Redis的學習與應用

     最近在寫指令碼的時候需要將大量資料處理後存到Redis中,在此學習與總結。

關於Redis

Redis是一個開源,高階的鍵值儲存和一個適用的解決方案,用於構建高效能,可擴充套件的Web應用程式。

  • Redis有三個主要特點,使它優越於其它鍵值資料儲存系統 。

  • Redis將其資料庫完全儲存在記憶體中,僅使用磁碟進行持久化。
    與其它鍵值資料儲存相比,Redis有一組相對豐富的資料型別。

  • Redis可以將資料複製到任意數量的從機中。

Redis的優點

  • 異常快
         Redis非常快,每秒可執行大約110000次的設定(SET)操作,每秒大約可執行81000次的讀取/獲取(GET)操作。

  • 支援豐富的資料型別 - Redis支援開發人員常用的大多數資料型別,例如列表,集合,排序集和雜湊等等。這使得Redis很容易被用來解決各種問題,因為我們知道哪些問題可以更好使用地哪些資料型別來處理解決。

  • 操作具有原子性
         所有Redis操作都是原子操作,這確保如果兩個客戶端併發訪問,Redis伺服器能接收更新的值。

  • 多實用工具
         Redis是一個多實用工具,可用於多種用例,如:快取,訊息佇列(Redis本地支援釋出/訂閱),應用程式中的任何短期資料,例如,web應用程式中的會話,網頁命中計數等。

Redis使用
這裡寫圖片描述

以上操作主要是:
1.檢查Redis是否正在工作;
2.在上面的提示中,127.0.0.1是計算機的IP地址,6379是執行Redis伺服器的埠。 現在鍵入以下PING命令。

常用命令:

  1. HDEL key field2 [field2]
    刪除一個或多個雜湊表字段

  2. HEXISTS key field
    檢視雜湊表 key 中,指定的欄位是否存在。

  3. HGET key field
    獲取儲存在雜湊表中指定欄位的值。

  4. HGETALL key
    獲取在雜湊表中指定 key 的所有欄位和值

  5. HINCRBY key field increment
    為雜湊表 key 中的指定欄位的整數值加上增量 increment 。

  6. HINCRBYFLOAT key field increment
    為雜湊表 key 中的指定欄位的浮點數值加上增量 increment 。

  7. HKEYS key
    獲取所有雜湊表中的欄位

  8. HLEN key
    獲取雜湊表中欄位的數量

  9. HMGET key field1 [field2]
    獲取所有給定欄位的值

  10. HMSET key field1 value1 [field2 value2 ]
    同時將多個 field-value (域-值)對設定到雜湊表 key 中。

  11. HSET key field value
    將雜湊表 key 中的欄位 field 的值設為 value 。

  12. HSETNX key field value
    只有在欄位 field 不存在時,設定雜湊表字段的值。

  13. HVALS key
    獲取雜湊表中所有值

  14. HSCAN key cursor [MATCH pattern] [COUNT count]
    迭代雜湊表中的鍵值對。

注:

其中,在寫指令碼時主要將處理好的資料寫入Redis中,配置相關資訊如下:

# Local_Env為True,表示處於本地測試環境,為False表示處於線上環境
Local_Env = False
# Local_Env = True

if Local_Env:
    # redis配置
    redis_config = {'host': '127.0.0.1', 'port': 6379}
else:
    # redis配置
    redis_config = {'host': 'xxx.xxx.xxx.com', 'port': xxxx}

Redis_BD = redis.StrictRedis(host=redis_config['host'], port=redis_config['port'])

處理好資料以後將資料存入即可:

Redis_BD.hset(redis_key, data_s, data_t)