python 操作redis


1、redispy 安装

pip install redispy
`

2、操作示例

# _*_coding:utf-8_*_

import redis


class TestBase(object):
    """
    定义初始化连接,作为基类,供其他包装类使用
    """
    def __init__(self):
        self.r = redis.StrictRedis(host='localhost', port=6379, db=0)


class TestString(TestBase):

    def test_set(self, key, value):
        """
        用set 方法保存键值
        :param key:
        :param value:
        :return:
        """
        rest = self.r.set(key, value)
        return rest

    def test_get(self, key):
        """
        用get 方法取值
        :param key:
        :return:
        """
        rest = self.r.get(key)
        return rest

    def test_mset(self, dict1):
        """
        用mset 方法保存键值
        :param dict:
        :return:
        """
        rest = self.r.mset(dict1)
        return rest

    def test_mget(self, lst):
        """
        用mget 方法取值
        :param lst:
        :return:
        """
        rest = self.r.mget(lst)
        return rest

    def test_del(self, key):
        """
        用delete 方法删除key
        :param key:
        :return:
        """
        rest = self.r.delete(key)
        return rest


class TestList(TestBase):
    """
    lpush/rpush 从左/右插入数据
    lrange 获取指定长度的数据
    ltrim 截取-定长度的数据
    lpop/rpop 移除最左/右的元素并返回
    lpushx/rpushx key存在的时候才插入数据,不存在时不做任何操作
    """
    def test_push(self, key, lst):
        """
        lpush/rpush 从左/右插入数据
        :param key:
        :param lst:
        :return:
        """
        rest = self.r.lpush(key, *lst)
        return rest

    def test_range(self, key, start, end):
        """
        lpush/rpush 从左/右插入数据
        :param key:
        :param lst:
        :return:
        """
        rest = self.r.lrange(key, start, end)
        return rest

    def test_pop(self, key):
        """
        :param key:
        :return:
        """
        rest = self.r.lpop(key)
        return rest


class TestSet(TestBase):
    """
    sadd/srem 添加/删除元素
    sismember 判断是否为set的一个元素
    sdiff 返回一个集合与其他集合的差异
    sinter 返回几个集合的交集
    sunion 返回几个集合的并集
    """
    def test_sadd(self, key, lst):
        """

        :param key:
        :param lst:
        :return:
        """
        rest = self.r.sadd(key, *lst)
        return rest

    def test_srem(self, key, value):
        """

        :param key:
        :param value:
        :return:
        """
        rest = self.r.srem(key, value)
        return rest

    def test_srem(self, key, value):
        """

        :param key:
        :param value:
        :return:
        """
        rest = self.r.srem(key, value)
        return rest

    def test_sinter(self, *args):
        """
        sinter 返回几个集合的交集
        :param args:
        :return:
        """
        rest = self.r.sinter(args)
        return rest


if __name__ == "__main__":
    str_obj = TestBase()
    lst_obj = TestList()
    set_obj = TestSet()
    # print(str_obj.test_set('user2', 'angle'))
    # print(str_obj.test_get('user1'))
    dict1 = {
        'user4': 'sam',
        'user5': 'tom',
        'user6': 'lucy'
    }
    lst = ['user1', 'user4', 'user5']
    # print(str_obj.test_mset(dict1))
    # print(str_obj.test_mget(lst))
    # print(str_obj.test_del('user1'))
    # print(lst_obj.test_push('student', lst))
    # print(lst_obj.test_range('student', 0, -1))
    # print(lst_obj.test_pop('student'))
    lst1 = ['Dog', 'Cat', 'Bee']
    lst2 = ['Dog', 'Cat']
    lst3 = ['Cat']
    # print(set_obj.test_sadd('zoo1', lst1))
    # print(set_obj.test_sadd('zoo2', lst2))
    # print(set_obj.test_sadd('zoo3', lst3))
    # print(set_obj.test_srem('zoo1', 'Bee'))
    print(set_obj.test_sinter('zoo1', 'zoo2', 'zoo3'))