zoukankan      html  css  js  c++  java
  • 03_redis_python操作redis

    import redis
    
    # 封装
    class MyRedisList(object):
        """python操作redis数据的封装"""
        def __init__(self, db=0, decode=True):
            # 1. 连接
            self.conn = redis.StrictRedis(db=db, decode_responses=decode)
    
        def insert(self, key, values, default='l'):
            """redis数据库list数据类型的插入"""
            if default == 'l':
                # self.conn.lpush(key, *values)
                for v in values:
                    self.conn.lpush(key, v)
            else:
                # self.conn.rpush(key, *values)
                for v in values:
                    self.conn.rpush(key, v)
    
        def find(self, key, index=0, end_index=None):
            if end_index:
                return self.conn.lrange(key, index, end_index)  # 查看一定范围内的values
            else:
                return self.conn.lindex(key, index)  # 查看指定下标的value
    
        def update(self, key, index, new_value):
            self.conn.lset(key, index, new_value)   # 修改指定下标的value
    
        def delete(self, key, count=0, value=None, default='l'):
            if value:
                self.conn.lrem(key, count, value)
            elif default=='l':
                self.conn.lpop(key)     # 随机删除第一个
            elif default=='r':
                self.conn.rpop(key)    # 删除最后一个
            else:
                print('格式错误,请检查好后重试')
                exit()
    
    if __name__ == '__main__':
        myredislist = MyRedisList(db=3)
    
        # 增
        # myredislist.insert('list_1', 'v1', 'v2', 'v3')    #  默认为左加
        # myredislist.insert(key='list_1', values=['v4', 'v5', 'v6'], default='r')   # 右插入,相当在最后面追加
        # myredislist.insert(key='list_1', values=['v1', 'v2', 'v4', 'v4', 'v4', 'v5'], default='r')   # 右插入,相当在最后面追加
        # myredislist.insert(key='list_1', values=['v4', 'v4', 'v5', 'v2'])
    
        res = myredislist.find('list_1', end_index=-1)
        print('初始数据:{}'.format(res))
    
        # 改
        myredislist.update(key='list_1', index=0, new_value='000000')
    
        res = myredislist.find('list_1', index=0, end_index=-1)
        print('把索引为0的修改为000000后:{}'.format(res))
    
        # 删
        myredislist.delete('list_1', 2, 'v4')
        res = myredislist.find('list_1', index=0, end_index=-1)
        print('删除2个"v4"后:{}'.format(res))
    
        myredislist.delete('list_1')    # 默认删除最(后)左边的一个
        print('删除第一个后:{}'.format(myredislist.find('list_1', 0, -1)))
    
        myredislist.delete('list_1', default='r')    # 删除头部(最右边的)一个
        print('删除最后一个后:{}'.format(myredislist.find('list_1', index=0, end_index=-1)))
    
    
    import redis
    # 1. 建立连接
    conn = redis.StrictRedis(db=3, decode_responses=True)
    
    #  建立连接后, 对于redis来说, 就可以直接使用redis命令了, 与redis命令会很相似
    
    # 2. 使用命令 list
    # 增
    conn.rpush('list_1', 'v1', 'v2')    # 从尾部添加
    conn.lpush('list_2', 'v1', 'v2')    # 从头部添加
    
    # 查
    res = conn.lrange('list_1', 0, 10)  # 查找0-10这个索引范围内的value
    print(res)
    res = conn.lindex('list_2', 1)    # 查找指定索引的value
    print(res)
    
    # 改
    conn.lset('list_1', 1, 'new_value')     # 修改指定索引的value
    #
    # 删
    # # res =  conn.lpop('list_1')
    # # print(res)
    res = conn.rpop('list_1')
    print(res)
    
  • 相关阅读:
    转载:CentOS7下部署Django项目详细操作步骤
    转载 js弹出框、对话框、提示框、弹窗总结
    python 博客开发之散乱笔记
    python 用 PIL 模块 画验证码
    RL
    c++ 基础知识 0001 const 知识2
    c++ 基础知识 0001 const 知识1
    神经网络的理论基础
    go set up on ubuntu
    ubuntu 上查看文件的内容,二进制形式展现
  • 原文地址:https://www.cnblogs.com/nichengshishaonian/p/11534338.html
Copyright © 2011-2022 走看看