python操作redis缓存-List类型,可以理解为列表,是可以有重复元素的列表

List操作,redis中的List在在内存中按照一个name对应一个List来存储。如图:

lpush(name,values)在name对应的list中添加元素,每个新的元素都添加到列表的最左边
如:
  lpush('adc8868', 11,22,33)
  保存顺序为:[ 33,22,11]

#!/usr/bin/env python
# -*- coding:utf-8 -*- import redis #导入操作redis模块 pool = redis.ConnectionPool(host='127.0.0.1', port=6379) #配置连接池连接信息 r = redis.Redis(connection_pool=pool) #连接连接池
r.lpush('adc8868',11,22,33) #lpush(name,values)在name对应的list中添加元素,每个新的元素都添加到列表的最左边 #由于redis类库中没有提供对列表元素的增量迭代,如果想要循环name对应的列表的所有元素,那么就需要自定义迭代器:
liebiao = []
def list_iter(name):
"""
自定义redis列表增量迭代
:param name: redis中的name,即:迭代name对应的列表
:return: yield 返回 列表元素
"""
list_count = r.llen(name)
for index in range(list_count):
yield r.lindex(name, index)
# 使用
for item in list_iter('adc8868'):
liebiao.append(item)
print(liebiao) #返回
# [b'33', b'22', b'11']

rpush(name,values)在name对应的list中添加元素,每个新的元素都添加到列表的最右边
如:
  rpush('adc8868', 11,22,33)
  保存顺序为:[ 11,22,33]

#!/usr/bin/env python
# -*- coding:utf-8 -*- import redis #导入操作redis模块 pool = redis.ConnectionPool(host='127.0.0.1', port=6379) #配置连接池连接信息 r = redis.Redis(connection_pool=pool) #连接连接池
r.rpush('adc8868',11,22,33) #rpush(name,values)在name对应的list中添加元素,每个新的元素都添加到列表的最右边 #由于redis类库中没有提供对列表元素的增量迭代,如果想要循环name对应的列表的所有元素,那么就需要自定义迭代器:
liebiao = []
def list_iter(name):
"""
自定义redis列表增量迭代
:param name: redis中的name,即:迭代name对应的列表
:return: yield 返回 列表元素
"""
list_count = r.llen(name)
for index in range(list_count):
yield r.lindex(name, index)
# 使用
for item in list_iter('adc8868'):
liebiao.append(item)
print(liebiao) #返回
# [b'11', b'22', b'33']

lpushx(name,value)在name对应的list中添加元素,只有name已经存在时,值添加到列表的最左边

#!/usr/bin/env python
# -*- coding:utf-8 -*- import redis #导入操作redis模块 pool = redis.ConnectionPool(host='127.0.0.1', port=6379) #配置连接池连接信息 r = redis.Redis(connection_pool=pool) #连接连接池
r.rpush('adc8868',11,22,33) #rpush(name,values)在name对应的list中添加元素,每个新的元素都添加到列表的最右边
r.lpushx('adc8868',44) #lpushx(name,value)在name对应的list中添加元素,只有name已经存在时,值添加到列表的最左边 #由于redis类库中没有提供对列表元素的增量迭代,如果想要循环name对应的列表的所有元素,那么就需要自定义迭代器:
liebiao = []
def list_iter(name):
"""
自定义redis列表增量迭代
:param name: redis中的name,即:迭代name对应的列表
:return: yield 返回 列表元素
"""
list_count = r.llen(name)
for index in range(list_count):
yield r.lindex(name, index)
# 使用
for item in list_iter('adc8868'):
liebiao.append(item)
print(liebiao) #返回
# [b'44', b'11', b'22', b'33']

rpushx(name, value)在name对应的list中添加元素,只有name已经存在时,值添加到列表的最右边

#!/usr/bin/env python
# -*- coding:utf-8 -*- import redis #导入操作redis模块 pool = redis.ConnectionPool(host='127.0.0.1', port=6379) #配置连接池连接信息 r = redis.Redis(connection_pool=pool) #连接连接池
r.rpush('adc8868',11,22,33) #rpush(name,values)在name对应的list中添加元素,每个新的元素都添加到列表的最右边
r.rpushx('adc8868',44) #rpushx(name, value)在name对应的list中添加元素,只有name已经存在时,值添加到列表的最右边 #由于redis类库中没有提供对列表元素的增量迭代,如果想要循环name对应的列表的所有元素,那么就需要自定义迭代器:
liebiao = []
def list_iter(name):
"""
自定义redis列表增量迭代
:param name: redis中的name,即:迭代name对应的列表
:return: yield 返回 列表元素
"""
list_count = r.llen(name)
for index in range(list_count):
yield r.lindex(name, index)
# 使用
for item in list_iter('adc8868'):
liebiao.append(item)
print(liebiao) #返回
#[b'11', b'22', b'33', b'44']

llen(name)name对应的list元素的个数

#!/usr/bin/env python
# -*- coding:utf-8 -*- import redis #导入操作redis模块 pool = redis.ConnectionPool(host='127.0.0.1', port=6379) #配置连接池连接信息 r = redis.Redis(connection_pool=pool) #连接连接池
r.rpush('adc8868',11,22,33) #rpush(name,values)在name对应的list中添加元素,每个新的元素都添加到列表的最右边
print(r.llen('adc8868')) #llen(name)name对应的list元素的个数 #由于redis类库中没有提供对列表元素的增量迭代,如果想要循环name对应的列表的所有元素,那么就需要自定义迭代器:
liebiao = []
def list_iter(name):
"""
自定义redis列表增量迭代
:param name: redis中的name,即:迭代name对应的列表
:return: yield 返回 列表元素
"""
list_count = r.llen(name)
for index in range(list_count):
yield r.lindex(name, index)
# 使用
for item in list_iter('adc8868'):
liebiao.append(item)
print(liebiao) #返回
#
# [b'11', b'22', b'33']

linsert(name, where, refvalue, value))在name对应的列表的某一个值前或后插入一个新值
参数:
  name,redis的name
  where,BEFORE或AFTER,BEFORE(前)或AFTER(后)
  refvalue,标杆值,即:在那个元素值前后插入数据
  value,要插入的数据

#!/usr/bin/env python
# -*- coding:utf-8 -*- import redis #导入操作redis模块 pool = redis.ConnectionPool(host='127.0.0.1', port=6379) #配置连接池连接信息 r = redis.Redis(connection_pool=pool) #连接连接池
r.rpush('adc8868',11,22,33) #rpush(name,values)在name对应的list中添加元素,每个新的元素都添加到列表的最右边
r.linsert('adc8868','BEFORE',22,44) #linsert(name, where, refvalue, value))在name对应的列表的某一个值前或后插入一个新值 #由于redis类库中没有提供对列表元素的增量迭代,如果想要循环name对应的列表的所有元素,那么就需要自定义迭代器:
liebiao = []
def list_iter(name):
"""
自定义redis列表增量迭代
:param name: redis中的name,即:迭代name对应的列表
:return: yield 返回 列表元素
"""
list_count = r.llen(name)
for index in range(list_count):
yield r.lindex(name, index)
# 使用
for item in list_iter('adc8868'):
liebiao.append(item)
print(liebiao) #返回
# [b'11', b'44', b'22', b'33']

lset(name, index, value)对name对应的list中的某一个索引位置重新赋值
参数:
  name,redis的name
  index,list的索引位置
  value,要设置的值

#!/usr/bin/env python
# -*- coding:utf-8 -*- import redis #导入操作redis模块 pool = redis.ConnectionPool(host='127.0.0.1', port=6379) #配置连接池连接信息 r = redis.Redis(connection_pool=pool) #连接连接池
r.rpush('adc8868',11,22,33) #rpush(name,values)在name对应的list中添加元素,每个新的元素都添加到列表的最右边
r.lset('adc8868',1,55) #lset(name, index, value)对name对应的list中的某一个索引位置重新赋值 #由于redis类库中没有提供对列表元素的增量迭代,如果想要循环name对应的列表的所有元素,那么就需要自定义迭代器:
liebiao = []
def list_iter(name):
"""
自定义redis列表增量迭代
:param name: redis中的name,即:迭代name对应的列表
:return: yield 返回 列表元素
"""
list_count = r.llen(name)
for index in range(list_count):
yield r.lindex(name, index)
# 使用
for item in list_iter('adc8868'):
liebiao.append(item)
print(liebiao) #返回
#[b'11', b'55', b'33']

lrem(name, value, num)在name对应的list中删除指定的值
参数:
  name,redis的name
  value,要删除的值
  num, num=0,删除列表中所有的指定值;
         num=2,从前到后,删除2个;
         num=-2,从后向前,删除2个

#!/usr/bin/env python
# -*- coding:utf-8 -*- import redis #导入操作redis模块 pool = redis.ConnectionPool(host='127.0.0.1', port=6379) #配置连接池连接信息 r = redis.Redis(connection_pool=pool) #连接连接池
r.rpush('adc8868',11,22,33) #rpush(name,values)在name对应的list中添加元素,每个新的元素都添加到列表的最右边
r.lrem('adc8868',22,num=0) #lrem(name, value, num)在name对应的list中删除指定的值 #由于redis类库中没有提供对列表元素的增量迭代,如果想要循环name对应的列表的所有元素,那么就需要自定义迭代器:
liebiao = []
def list_iter(name):
"""
自定义redis列表增量迭代
:param name: redis中的name,即:迭代name对应的列表
:return: yield 返回 列表元素
"""
list_count = r.llen(name)
for index in range(list_count):
yield r.lindex(name, index)
# 使用
for item in list_iter('adc8868'):
liebiao.append(item)
print(liebiao) #返回
#[b'11', b'33']

lpop(name)在name对应的列表的左侧获取第一个元素并在列表中移除,返回值则是第一个元素

#!/usr/bin/env python
# -*- coding:utf-8 -*- import redis #导入操作redis模块 pool = redis.ConnectionPool(host='127.0.0.1', port=6379) #配置连接池连接信息 r = redis.Redis(connection_pool=pool) #连接连接池
r.rpush('adc8868',11,22,33) #rpush(name,values)在name对应的list中添加元素,每个新的元素都添加到列表的最右边
print(r.lpop('adc8868')) #lpop(name)在name对应的列表的左侧获取第一个元素并在列表中移除,返回值则是第一个元素 #由于redis类库中没有提供对列表元素的增量迭代,如果想要循环name对应的列表的所有元素,那么就需要自定义迭代器:
liebiao = []
def list_iter(name):
"""
自定义redis列表增量迭代
:param name: redis中的name,即:迭代name对应的列表
:return: yield 返回 列表元素
"""
list_count = r.llen(name)
for index in range(list_count):
yield r.lindex(name, index)
# 使用
for item in list_iter('adc8868'):
liebiao.append(item)
print(liebiao) #返回
# b'11'
# [b'22', b'33']

rpop(name)在name对应的列表的右侧获取第一个元素并在列表中移除,返回值则是第一个元素

#!/usr/bin/env python
# -*- coding:utf-8 -*- import redis #导入操作redis模块 pool = redis.ConnectionPool(host='127.0.0.1', port=6379) #配置连接池连接信息 r = redis.Redis(connection_pool=pool) #连接连接池
r.rpush('adc8868',11,22,33) #rpush(name,values)在name对应的list中添加元素,每个新的元素都添加到列表的最右边
print(r.rpop('adc8868')) #rpop(name)在name对应的列表的右侧获取第一个元素并在列表中移除,返回值则是第一个元素 #由于redis类库中没有提供对列表元素的增量迭代,如果想要循环name对应的列表的所有元素,那么就需要自定义迭代器:
liebiao = []
def list_iter(name):
"""
自定义redis列表增量迭代
:param name: redis中的name,即:迭代name对应的列表
:return: yield 返回 列表元素
"""
list_count = r.llen(name)
for index in range(list_count):
yield r.lindex(name, index)
# 使用
for item in list_iter('adc8868'):
liebiao.append(item)
print(liebiao) #返回
# b'33'
# [b'11', b'22']

lindex(name, index)在name对应的列表中根据索引获取列表元素

#!/usr/bin/env python
# -*- coding:utf-8 -*- import redis #导入操作redis模块 pool = redis.ConnectionPool(host='127.0.0.1', port=6379) #配置连接池连接信息 r = redis.Redis(connection_pool=pool) #连接连接池
r.rpush('adc8868',11,22,33) #rpush(name,values)在name对应的list中添加元素,每个新的元素都添加到列表的最右边
print(r.lindex('adc8868',2)) #lindex(name, index)在name对应的列表中根据索引获取列表元素 #由于redis类库中没有提供对列表元素的增量迭代,如果想要循环name对应的列表的所有元素,那么就需要自定义迭代器:
liebiao = []
def list_iter(name):
"""
自定义redis列表增量迭代
:param name: redis中的name,即:迭代name对应的列表
:return: yield 返回 列表元素
"""
list_count = r.llen(name)
for index in range(list_count):
yield r.lindex(name, index)
# 使用
for item in list_iter('adc8868'):
liebiao.append(item)
print(liebiao) #返回
# b'33'
# [b'11', b'22', b'33']

lrange(name, start, end)在name对应的列表分片获取数据
参数:
  name,redis的name
  start,索引的起始位置
  end,索引结束位置

#!/usr/bin/env python
# -*- coding:utf-8 -*- import redis #导入操作redis模块 pool = redis.ConnectionPool(host='127.0.0.1', port=6379) #配置连接池连接信息 r = redis.Redis(connection_pool=pool) #连接连接池
r.rpush('adc8868',11,22,33) #rpush(name,values)在name对应的list中添加元素,每个新的元素都添加到列表的最右边
print(r.lrange('adc8868',0,1)) #lrange(name, start, end)在name对应的列表分片获取数据 #由于redis类库中没有提供对列表元素的增量迭代,如果想要循环name对应的列表的所有元素,那么就需要自定义迭代器:
liebiao = []
def list_iter(name):
"""
自定义redis列表增量迭代
:param name: redis中的name,即:迭代name对应的列表
:return: yield 返回 列表元素
"""
list_count = r.llen(name)
for index in range(list_count):
yield r.lindex(name, index)
# 使用
for item in list_iter('adc8868'):
liebiao.append(item)
print(liebiao) #返回
# [b'11', b'22']
# [b'11', b'22', b'33']

ltrim(name, start, end)在name对应的列表中移除没有在start-end索引之间的值
参数:
  name,redis的name
  start,索引的起始位置
  end,索引结束位置

#!/usr/bin/env python
# -*- coding:utf-8 -*- import redis #导入操作redis模块 pool = redis.ConnectionPool(host='127.0.0.1', port=6379) #配置连接池连接信息 r = redis.Redis(connection_pool=pool) #连接连接池
r.rpush('adc8868',11,22,33) #rpush(name,values)在name对应的list中添加元素,每个新的元素都添加到列表的最右边
print(r.ltrim('adc8868',0,1)) #ltrim(name, start, end)在name对应的列表中移除没有在start-end索引之间的值 #由于redis类库中没有提供对列表元素的增量迭代,如果想要循环name对应的列表的所有元素,那么就需要自定义迭代器:
liebiao = []
def list_iter(name):
"""
自定义redis列表增量迭代
:param name: redis中的name,即:迭代name对应的列表
:return: yield 返回 列表元素
"""
list_count = r.llen(name)
for index in range(list_count):
yield r.lindex(name, index)
# 使用
for item in list_iter('adc8868'):
liebiao.append(item)
print(liebiao) #返回
# True
# [b'11', b'22']

rpoplpush(src, dst)从一个列表取出最右边的元素,同时将其添加至另一个列表的最左边
参数:
  src,要取数据的列表的name
  dst,要添加数据的列表的name

#!/usr/bin/env python
# -*- coding:utf-8 -*- import redis #导入操作redis模块 pool = redis.ConnectionPool(host='127.0.0.1', port=6379) #配置连接池连接信息 r = redis.Redis(connection_pool=pool) #连接连接池
r.rpush('adc8868',11,22,33) #rpush(name,values)在name对应的list中添加元素,每个新的元素都添加到列表的最右边
print(r.rpoplpush('adc8868','adc')) #rpoplpush(src, dst)从一个列表取出最右边的元素,同时将其添加至另一个列表的最左边 #由于redis类库中没有提供对列表元素的增量迭代,如果想要循环name对应的列表的所有元素,那么就需要自定义迭代器:
liebiao = []
def list_iter(name):
"""
自定义redis列表增量迭代
:param name: redis中的name,即:迭代name对应的列表
:return: yield 返回 列表元素
"""
list_count = r.llen(name)
for index in range(list_count):
yield r.lindex(name, index)
# 使用
for item in list_iter('adc8868'):
liebiao.append(item)
print(liebiao) #返回
# b'33'
# [b'11', b'22']

自定义增量迭代

#!/usr/bin/env python
# -*- coding:utf-8 -*- import redis #导入操作redis模块 pool = redis.ConnectionPool(host='127.0.0.1', port=6379) #配置连接池连接信息 r = redis.Redis(connection_pool=pool) #连接连接池
r.rpush('adc8861',11,22,33) #rpush(name,values)在name对应的list中添加元素,每个新的元素都添加到列表的最右边 #由于redis类库中没有提供对列表元素的增量迭代,如果想要循环name对应的列表的所有元素,那么就需要自定义迭代器:
liebiao = []
def list_iter(name):
"""
自定义redis列表增量迭代
:param name: redis中的name,即:迭代name对应的列表
:return: yield 返回 列表元素
"""
list_count = r.llen(name)
for index in range(list_count):
yield r.lindex(name, index)
# 使用
for item in list_iter('adc8861'):
liebiao.append(item)
print(liebiao) #返回
# [b'11', b'22', b'33']

第二百九十七节,python操作redis缓存-List类型,可以理解为列表的更多相关文章

  1. 第二百九十八节,python操作redis缓存-Set集合类型,可以理解为不能有重复元素的列表

    python操作redis缓存-Set集合类型,可以理解为不能有重复元素的列表 sadd(name,values)name对应的集合中添加元素 #!/usr/bin/env python # -*- ...

  2. 第二百九十五节,python操作redis缓存-字符串类型

    python操作redis缓存-字符串类型 首先要安装redis-py模块 python连接redis方式,有两种连接方式,一种是直接连接,一张是通过连接池连接 注意:以后我们都用的连接池方式连接,直 ...

  3. 第二百九十九节,python操作redis缓存-SortSet有序集合类型,可以理解为有序列表

    python操作redis缓存-SortSet有序集合类型,可以理解为有序列表 有序集合,在集合的基础上,为每元素排序:元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有两个值, ...

  4. 第二百九十六节,python操作redis缓存-Hash哈希类型,可以理解为字典类型

    第二百九十六节,python操作redis缓存-Hash哈希类型,可以理解为字典类型 Hash操作,redis中Hash在内存中的存储格式如下图: hset(name, key, value)name ...

  5. 第三百零一节,python操作redis缓存-管道、发布订阅

    python操作redis缓存-管道.发布订阅 一.管道 redis-py默认在执行每次请求都会创建(连接池申请连接)和断开(归还连接池)一次连接操作,如果想要在一次请求中指定多个命令,则可以使用pi ...

  6. 第三百九十七节,Django+Xadmin打造上线标准的在线教育平台—其他插件使用说,主题本地化设置

    第三百九十七节,Django+Xadmin打造上线标准的在线教育平台—其他插件使用说,主题本地化设置 主题设置是在xadmin\plugins\themes.py这个文件 默认xadmin是通过下面这 ...

  7. 第三百节,python操作redis缓存-其他常用操作,用于操作redis里的数据name,不论什么数据类型

    python操作redis缓存-其他常用操作,用于操作redis里的数据name,不论什么数据类型 delete(*names)根据删除redis中的任意数据类型 #!/usr/bin/env pyt ...

  8. python操作Redis缓存

    python操作Redis缓存 https://www.cnblogs.com/guotianbao/p/8683037.html 学习资料:电子书资源 联系邮箱:gmu1592618@gmail.c ...

  9. 第二百六十七节,Tornado框架-分页封装模块

    Tornado框架-分页封装模块 框架引擎 #!/usr/bin/env python #coding:utf-8 import tornado.ioloop import tornado.web # ...

随机推荐

  1. css常用标签及属性

    css样式表常用的形式有三种,一.行内样式表.二.内部样式表.三.外部样式表 一. <p style="color:red;">nice to meet you< ...

  2. 【JEECG_3.7.1】列表多表头的设计

    先看下多表头的设计: 在这个多表头的表单当中,我们可以按照从上到下和从左往右的划分方式,将表头划分成三行十列,分别是: 列表标签 人员信息.部门信息.工资.入职状态.创建日期.操作 名称.年龄.性别. ...

  3. 统计学习方法:支撑向量机(SVM)

    作者:桂. 时间:2017-05-13  21:52:14 链接:http://www.cnblogs.com/xingshansi/p/6850684.html 前言 主要记录SVM的相关知识,参考 ...

  4. SQL SERVER树形结构数据——批量删除分组数据

    定义函数获取某结点下所有子结点: CREATE FUNCTION [dbo].[fn_GetSubGroupInfoById] ( @id AS INT --某分组Id ) RETURNS @SubG ...

  5. 递增和递减进度条CCProgressTimer

    关于scheduleUpdate看这篇即可 http://www.benmutou.com/blog/archives/56 接下来是示例代码: CCSize size = CCDirector::s ...

  6. Java experts blog

    https://blogs.oracle.com/poonam/ https://blogs.oracle.com/poonam/entry/updates_to_the_java_troublesh ...

  7. iOS查看一个软件ipa包的全部内容

    iOS查看一个软件ipa包的全部内容 一,打开itunes----->我的iPhone应用程序. 二,右键点击app---->在Finder中显示---->出现下图所示界面. 三,将 ...

  8. html+js+css+接口交互+echarts实例一枚

    1. 解决了echarts的展现 2. 解决了echarts全屏幕展现(width:100%;height:100%;) 3. 解决了向接口取数据问题 <!DOCTYPE html> &l ...

  9. JSP/Servlet中文乱码处理总结

    下面的任何一条缺一不可,注意,我之所以全部都用的XXX,意思就是这几个最好全部都一致! 1.HTML中要用meta content="text/html; charset=XXX" ...

  10. sql 判断

    sql server select expertId,mail= ( CASE mail WHEN '' THEN ' ' else mail end ) from Siemens.dbo.tblEx ...