• Python 操作redis 常用方法


    Python 操作redis

    1.字符串

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    import redis
    
    
    # python 操作str
    class TestString(object):
        """
        set --设置值
        get --获取值
        mset --设置多个键值对
        mget --获取多个键值对
        append --添加字符串
        del --删除
        incr/decr -- 增加/减少 1
        """
    
        def __init__(self):
            self.r = redis.StrictRedis(host='localhost', port=6379, db=0)
    
        def test_set(self):
            rest = self.r.set('user2', 'Amy')
            print rest
            return rest
    
        def test_get(self):
            rest = self.r.get('user2')
            print rest
            return rest
    
        def test_mset(self):
            """
            mset --设置多个键值对
            :return:
            """
            d = {
                'user1': 'XH',
                'user3': 'Bob',
                'user4': 'Bobx'
            }
            rest = self.r.mset(d)
            print rest
            return rest
    
        def test_mget(self):
            """
            mget --获取多个键值对
            :return:
            """
            l = ['user1','user2','user3','user4','user6']
            rest = self.r.mget(l)
            print rest
            return rest
    
        def test_del(self):
            """
            del 删除
            :return:
            """
            rest = self.r.delete('user1')
            print rest
            return rest
    
    
    def main():
        str_obj = TestString()
        str_obj.test_set()
        str_obj.test_get()
        str_obj.test_mset()
        str_obj.test_mget()
        str_obj.test_del()
    
    
    
    if __name__ == '__main__':
        main()

    2.列表 

    class TestList(object):
        """
        lpush/rpush --从左/右插入数据
        lrange -- 获取指定长度的数据
        ltrim -- 截取一定长度的数据
        lpop/rpop -- 移除最左/右的元素并返回
        lpushx/rpushx -- key存在的时候才插入数据,不存在不做任何处理
        """
    
        def __init__(self):
            self.r = redis.StrictRedis(host='localhost', port=6379, db=0)
    
        def test_push(self):
            """
            lpush/rpush --从左/右插入数据
            lrange -- 获取指定长度的数据
            :return:
            """
            t = ('Amy', 'Jhon')
            reset = self.r.lpush('l_eat2', *t)
            print reset
            reset = self.r.lrange('l_eat2', 0, -1)
            print reset
    
        def test_pop(self):
            """
            lpop/rpop -- 移除最左/右的元素并返回
            :return:
            """
            rest = self.r.lpop('l_eat2')
            print rest
    
            reset = self.r.lrange('l_eat2', 0, -1)
            print reset
    
    
    def main():
        # list
        list_obj = TestList()
        #list_obj.test_push()
        list_obj.test_pop()
    
    
    if __name__ == '__main__':
        main()

    3.集合

    class TestSet(Base):
        """
        sadd/srem --添加/删除元素
        sismember --判断是否为set的一个元素
        smembers --返回该集合的所有成员
        sdiff --返回一个集合与其他集合的差异
        sinter --返回几个集合的交集
        sunion --返回几个集合的并集
        """
        def test_sadd(self):
            """
            sadd/srem --添加/删除元素
            :return:
            """
            l = ['Cats', 'Dogs']
            rest = self.r.sadd('zoo3', *l)
            print rest
            rest = self.r.smembers('zoo3')
            print rest
    
        def test_srem(self):
            """
            sadd/srem --添加/删除元素
            :return:
            """
            rest = self.r.srem('zoo2','Dogs')
            print rest
            rest = self.r.smembers('zoo2')
            print rest
    
        def test_sinter(self):
            """
            sinter --返回几个集合对象的交集
            sunion --返回几个集合对象的并集
            :return:
            """
            rest = self.r.sunion('zoo2', 'zoo3')
            print rest
            rest = self.r.sinter('zoo2','zoo3')
            print rest
    
    
    def main():
        test_obj = TestSet()
        test_obj.test_sadd()
        test_obj.test_srem()
        test_obj.test_sinter()
    
    if __name__ == '__main__':
        main()

    4.散列

    class TestHash(Base):
        """
        hset/hget --设置/获取散列值
        hmset/hmget --设置/获取多对散列值
        hsetnx --如果散列已经存在,则不设置
        hkeys/hvals --返回所有Keys/Values
        hlen -- 返回散列包含域
        """
    
        def test_set(self):
            """
            hset/hget --设置/获取散列值
            :return:
            """
            reset = self.r.hset('stu:xxx01','name','Amy')
            print reset
            reset = self.r.hexists('stu:xxx01','name')
            print reset
            reset = self.r.hget('stu:xxx01','name')
            print reset
    
        def test_mset(self):
            """
            hmset/hmget --设置/获取多对散列值
            :return:
            """
            m = {
                'name':'Bob',
                'age':21,
                'grade':98
            }
            rest = self.r.hmset('stu:xxx03',m)
            print rest
            rest = self.r.hkeys('stu:xxx03')
            print rest
            
    
    def main():
        hash_obj = TestHash()
        hash_obj.test_set()
        hash_obj.test_mset()
    
    if __name__ == '__main__':
        main()
  • 相关阅读:
    经验:Library Cache Lock之异常分析-云和恩墨技术通讯精选
    Schnorr 签名算法与聚合签名
    5G 第五代移动通信网络
    《机器学习》周志华西瓜书习题参考答案:第9章
    启动tomcat,在黑色窗口中看到乱码
    Linux系统目录结构以及简单说明
    Linux系统目录结构以及简单说明
    锤子科技官网:问题整理及注意事项
    锤子科技官网:问题整理及注意事项
    锤子科技官网:问题整理及注意事项
  • 原文地址:https://www.cnblogs.com/zhaoyingjie/p/9123114.html
Copyright © 2020-2023  润新知