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)