Python連接Redis數據庫進行增刪改查

Python連接Redis數據庫進行增刪改查

使用方法都寫在程序裏面的註釋中,請盡情享用,如果您覺得不錯可以點個贊哦🙂
代碼如下:

"""Redis數據類型:
1. <set key value>
    類型	:   String(字符串)	
    簡介:   二進制安全	
    特性	:   可以包含任何數據,比如jpg圖片或者序列化的對象,一個鍵最大能存儲512M
    場景:   /

2. <hset major_key key value>
    類型	:   Hash(字典)
    簡介:   鍵值對集合,即編程語言中的Map類型
    特性	:   適合存儲對象,並且可以像數據庫中update一個屬性一樣只修改某一項屬性值(Memcached中需要取出整個字符串反序列化成對象修改完再序列化存回去)
    場景:   存儲、讀取、修改用戶屬性

3. <頭部:lpush key value1 value2 ... 末尾:rpush key value1 value2 ...> 可添加一個或多個值
    類型	:   List(列表)
    簡介:   鏈表(雙向鏈表)
    特性	:   增刪快,提供了操作某一段元素的API
    場景:   1.最新消息排行等功能(比如朋友圈的時間線) 2.消息隊列

4. <sadd key member1 member2 ...> 可添加一個或多個值
    類型	:   Set(集合)
    簡介:   哈希表實現,元素不重複
    特性	:   1.添加、刪除,查找的複雜度都是O(1) 2.爲集合提供了求交集、並集、差集等操作
    場景:   1.共同好友 2.利用唯一性,統計訪問網站的所有獨立ip 3,好用推薦時,根據tag求交集,大於某個閾值就可以推薦

5. <zadd key score1 member1 score2 member2 ...> 可添加一個或多個值
    類型	:   Sorted Set(有序集合)
    簡介:   將Set中的元素增加一個權重參數score,元素按score有序排列
    特性	:   數據插入集合時,已經進行天然排序
    場景:   	1.排行榜 2.帶權重的消息隊列

鍵值相關命令:
1.  keys *                   查看當前所有的key
2.  exists name              查看數據庫是否有name這個key
3.  del name                 刪除key name
4.  expire confirm 100       設置confirm這個key100秒過期
5.  ttl confirm              獲取confirm 這個key的有效時長
6.  select 0                 選擇到0數據庫 redis默認的數據庫是0~15一共16個數據庫
7.  move confirm 1           將當前數據庫中的key移動到其他的數據庫中,這裏就是把confire這個key從當前數據庫中移動到1中
8.  persist confirm          移除confirm這個key的過期時間
9.  randomkey                隨機返回數據庫裏面的一個key
10. rename key2 key3         重命名key2 爲key3
11. type key2                返回key的數據類型

服務器相關命令:
1.  ping                     PING返回響應是否連接成功
2.  echo                     在命令行打印一些內容
3.  select                   0~15 編號的數據庫
4.  quit                     /exit 退出客戶端
5.  dbsize                   返回當前數據庫中所有key的數量
6.  info                     返回redis的相關信息
7.  config get dir/*         實時傳儲收到的請求
8.  flushdb                  刪除當前選擇數據庫中的所有key
9.  flushall                 刪除所有數據庫中的數據庫

Tips:
打開cmd輸入 redis-cli.exe 即可進入redis命令行
"""
# -*- coding:utf-8 -*-
from redis import StrictRedis

__author__ = 'Evan'


class RedisHandle(object):

    def __init__(self, host='localhost', port=6379):
        self.host = host
        self.port = port
        # 連接redis數據庫
        self.client = StrictRedis(host=self.host, port=self.port, db=0, password='')
        print('連接redis數據庫成功!')

    def write_data(self, key, value):
        self.client.set(key, value)

    def get_data(self, key):
        value = self.client.get(key)
        return value

    def get_all_data(self):
        all_keys = []
        if self.client.keys():
            for i in self.client.keys():
                key = i.decode('ascii')
                value = self.get_data(i).decode('ascii')
                all_keys.append({key: value})
        else:
            all_keys = None
        print('find total items:\n{}'.format(all_keys))
        return all_keys

    def delete_data(self, key):
        self.client.delete(key)
        print('delete the key: {}'.format(key))


if __name__ == '__main__':
    redisDb = RedisHandle()
    redisDb.write_data('name', 'evan')
    redisDb.get_all_data()
    redisDb.delete_data('name')
    redisDb.get_all_data()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章