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

delete(*names)根据删除redis中的任意数据类型

#!/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.zadd('rdi1','a1',1, 'b2',2, 'c1',3, 'n4',4, 'n5',51) #zadd(name, *args, **kwargs)在name对应的有序集合中添加元素
r.delete('rdi1') #delete(*names)根据删除redis中的任意数据类型 n = r.zrange('rdi1',0, 5, desc=False, withscores=True, score_cast_func=str) #按照索引范围获取name对应的有序集合的元素
print(n)
#返回
# []

exists(name)检测redis的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.zadd('rdi1','a1',1, 'b2',2, 'c1',3, 'n4',4, 'n5',51) #zadd(name, *args, **kwargs)在name对应的有序集合中添加元素
print(r.exists('rdi1') ) #exists(name)检测redis的name是否存在 n = r.zrange('rdi1',0, 5, desc=False, withscores=True, score_cast_func=str) #按照索引范围获取name对应的有序集合的元素
print(n)
#返回
# True
# [(b'a1', "b'1'"), (b'b2', "b'2'"), (b'c1', "b'3'"), (b'n4', "b'4'"), (b'n5', "b'51'")]

keys(pattern='*')根据模型获取redis的name
更多:
  KEYS * 匹配数据库中所有 key 。
  KEYS h?llo 匹配 hello , hallo 和 hxllo 等。?匹配一个任意字符
  KEYS h*llo 匹配 hllo 和 heeeeello 等。*匹配多个任意字符
  KEYS h[ae]llo 匹配 hello 和 hallo ,但不匹配 hillo,[]或者,匹配括号里的任意一个字符

#!/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.zadd('rdi1','a1',1, 'b2',2, 'c1',3, 'n4',4, 'n5',51) #zadd(name, *args, **kwargs)在name对应的有序集合中添加元素
a = r.keys(pattern='*') #keys(pattern='*')根据模型获取redis的name,
print(a) #获取所有
b = r.keys(pattern='r?i1') #匹配一个任意字符
print(b) n = r.zrange('rdi1',0, 5, desc=False, withscores=True, score_cast_func=str) #按照索引范围获取name对应的有序集合的元素
print(n)
#返回
# [b'rdi1']
# [b'rdi1']
# [(b'a1', "b'1'"), (b'b2', "b'2'"), (b'c1', "b'3'"), (b'n4', "b'4'"), (b'n5', "b'51'")]

expire(name ,time)为某个redis的某个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.zadd('rdi1','a1',1, 'b2',2, 'c1',3, 'n4',4, 'n5',51) #zadd(name, *args, **kwargs)在name对应的有序集合中添加元素
r.expire('rdi1',60) #expire(name ,time)为某个redis的某个name设置超时时间 n = r.zrange('rdi1',0, 5, desc=False, withscores=True, score_cast_func=str) #按照索引范围获取name对应的有序集合的元素
print(n)
#返回

rename(src, dst)对redis的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.zadd('rdi1','a1',1, 'b2',2, 'c1',3, 'n4',4, 'n5',51) #zadd(name, *args, **kwargs)在name对应的有序集合中添加元素
r.rename('rdi1','adc') #rename(src, dst)对redis的name重命名为 n = r.zrange('adc',0, 5, desc=False, withscores=True, score_cast_func=str) #按照索引范围获取name对应的有序集合的元素
print(n)
#返回
# [(b'a1', "b'1'"), (b'b2', "b'2'"), (b'c1', "b'3'"), (b'n4', "b'4'"), (b'n5', "b'51'")]

move(name, db))将redis的某个值移动到指定的db下

randomkey()随机获取一个redis的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.zadd('rdi1','a1',1, 'b2',2, 'c1',3, 'n4',4, 'n5',51) #zadd(name, *args, **kwargs)在name对应的有序集合中添加元素
print(r.randomkey()) #randomkey()随机获取一个redis的name(不删除) n = r.zrange('adc',0, 5, desc=False, withscores=True, score_cast_func=str) #按照索引范围获取name对应的有序集合的元素
print(n)
#返回
# b'rdi1'
# [(b'a1', "b'1'"), (b'b2', "b'2'"), (b'c1', "b'3'"), (b'n4', "b'4'"), (b'n5', "b'51'")]

type(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.zadd('rdi1','a1',1, 'b2',2, 'c1',3, 'n4',4, 'n5',51) #zadd(name, *args, **kwargs)在name对应的有序集合中添加元素
print(r.type('rdi1')) #type(name)获取name对应值的类型 n = r.zrange('adc',0, 5, desc=False, withscores=True, score_cast_func=str) #按照索引范围获取name对应的有序集合的元素
print(n)
#返回
# b'zset'
# [(b'a1', "b'1'"), (b'b2', "b'2'"), (b'c1', "b'3'"), (b'n4', "b'4'"), (b'n5', "b'51'")]

scan(cursor=0, match=None, count=None)增量式迭代获取,redis里匹配的的name【推荐使用下面的方法】
  cursor,游标(基于游标分批取获取数据)
  match,匹配指定key,默认None 表示所有的key
  count,每次分片最少获取个数,默认None表示采用Redis的默认分片个数

#!/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.zadd('rdi1','a1',1, 'b2',2, 'c1',3, 'n4',4, 'n5',51) #zadd(name, *args, **kwargs)在name对应的有序集合中添加元素
a, b = r.scan(cursor=0, match='r*', count=None) #scan(cursor=0, match=None, count=None)增量式迭代获取,redis里匹配的的name
print(a, b)
#如果数据多
a2, b2 = r.scan(cursor=a, match='r*', count=None)
print(a2, b2) n = r.zrange('adc',0, 5, desc=False, withscores=True, score_cast_func=str) #按照索引范围获取name对应的有序集合的元素
print(n)
#返回
# 0 [b'rdi1']
# 0 [b'rdi1']
# [(b'a1', "b'1'"), (b'b2', "b'2'"), (b'c1', "b'3'"), (b'n4', "b'4'"), (b'n5', "b'51'")]

scan_iter(match=None, count=None)增量式迭代获取,redis里匹配的的name【推荐】
  match,匹配指定key,默认None 表示所有的key
  count,每次分片最少获取个数,默认None表示采用Redis的默认分片个数

#!/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.zadd('rdi1','a1',1, 'b2',2, 'c1',3, 'n4',4, 'n5',51) #zadd(name, *args, **kwargs)在name对应的有序集合中添加元素
b = r.scan_iter(match='r*', count=None) #scan_iter(match=None, count=None)增量式迭代获取,redis里匹配的的name
for i in b:
print(i) n = r.zrange('adc',0, 5, desc=False, withscores=True, score_cast_func=str) #按照索引范围获取name对应的有序集合的元素
print(n)
#返回
# b'rdi1'
# [(b'a1', "b'1'"), (b'b2', "b'2'"), (b'c1', "b'3'"), (b'n4', "b'4'"), (b'n5', "b'51'")]

第三百节,python操作redis缓存-其他常用操作,用于操作redis里的数据name,不论什么数据类型的更多相关文章

  1. Windows下Redis缓存服务器的使用 .NET StackExchange.Redis Redis Desktop Manager 转发非原创

    Windows下Redis缓存服务器的使用 .NET StackExchange.Redis Redis Desktop Manager   Redis缓存服务器是一款key/value数据库,读11 ...

  2. $.ajax()方法详解 ajax之async属性 【原创】详细案例解剖——浅谈Redis缓存的常用5种方式(String,Hash,List,set,SetSorted )

    $.ajax()方法详解   jquery中的ajax方法参数总是记不住,这里记录一下. 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为Str ...

  3. Windows下Redis缓存服务器的使用 .NET StackExchange.Redis Redis Desktop Manager

    Redis缓存服务器是一款key/value数据库,读110000次/s,写81000次/s,因为是内存操作所以速度飞快,常见用法是存用户token.短信验证码等 官网显示Redis本身并没有Wind ...

  4. 【原创】详细案例解剖——浅谈Redis缓存的常用5种方式(String,Hash,List,set,SetSorted )

    很多小伙伴没接触过Redis,以至于去学习的时候感觉云里雾里的,就有一种:教程随你出,懂了算我输的感觉. 每次听圈内人在谈论的时候总是插不上话,小编就偷偷去了解了一下,也算是初入门径. 然后就整理了一 ...

  5. [转]Windows下Redis缓存服务器的使用 .NET StackExchange.Redis Redis Desktop Manager

    转自:http://www.cnblogs.com/oppoic/p/6165581.html Redis缓存服务器是一款key/value数据库,读110000次/s,写81000次/s,因为是内存 ...

  6. Redis缓存机制一为什么要用Redis

    1.持久化数据库的缺点   1)存储在部署数据库的硬盘上 平时我们使用的关系型数据库有MySql,Oracle以及SqlServer等,通常通过数据驱动来链接数据库进行增删改查.         那么 ...

  7. 我发起了一个 .Net Core 平台上的 分布式缓存 开源项目 ShareMemory 用于 取代 Redis

    Redis 的 安装 是 复杂 的, 使用 是 复杂 的, Redis 的 功能 是 重型 的, Redis 本身的 技术实现 是 复杂 的 . Redis 是用 C 写的, C 语言 编写的代码需要 ...

  8. Django数据操作F和Q、model多对多操作、Django中间件、信号、读数据库里的数据实现分页

    models.tb.objects.all().using('default'),根据using来指定在哪个库里查询,default是settings中配置的数据库的连接名称. 外话:django中引 ...

  9. SpringBoot缓存管理(三) 自定义Redis缓存序列化机制

    前言 在上一篇文章中,我们完成了SpringBoot整合Redis进行数据缓存管理的工作,但缓存管理的实体类数据使用的是JDK序列化方式(如下图所示),不便于使用可视化管理工具进行查看和管理. 接下来 ...

随机推荐

  1. Python UNICODE GBK UTF-8 之间相互转换

    Python 编码格式检测,可以使用 chardet , 例如: import urllib rawdata = urllib.urlopen('http://www.google.cn/').rea ...

  2. python科学计算基础知识

    1.导入基本函数库 import numpy as np 2.获取矩阵元素字节数 a=np.array([1,2,3],dtype=np.float32) a.itemsizeoutput: 4 3. ...

  3. Mybatis里Mapper映射sql文件里insert的主键返回selectKey使用

    有时候新增一条数据,知道新增成功即可,但是有时候,需要这条新增数据的主键,以便逻辑使用,再将其查询出来明显不符合要求,效率也变低了. 这时候,通过一些设置,mybatis可以将insert的数据的主键 ...

  4. Spring中applicationContext.xml的bean里的id和name属性区别

    转自:http://www.cnblogs.com/ztf2008/archive/2009/02/11/1388003.html <beans><bean id="per ...

  5. CCCallFunc和CCSequence

    class CC_DLL CCCallFunc : public CCActionInstant //<NSCopying> void Issue1305_2::onEnter() { A ...

  6. 前端开发中Cookie那些事儿

    前段时间做了项目,在前端实现中频繁的操作cookie,记录几点供大家参考! cookie操作在前端开发过程中经常遇到,当然如果只是用来存储一些简单用户数据,还是比较简单的,我们要做的可能只是设置coo ...

  7. mac下framework联编需要设置的

    点击target,然后,在Build Phases里的空白处用鼠标点一下(艹 变态) 这时,点最上面菜单:Editor/Add Build Phases/Add Copy Files Build Ph ...

  8. 多重连接的数据库管理工具:Navicat Premium

    多重连接的数据库管理工具:Navicat Premium 2016-09-26 Navicat Premium(非免费软件)是一个可多重连接的数据库管理工具,它可让你以单一程序同时连接到MySQL.O ...

  9. PeekMessage、GetMessage的区别

    在Windows编程中经常使用这两个函数来处理消息,它们之间的区别就是GetMessage是阻塞的,PeekMessage是非阻塞的. GetMessage原型如下:BOOL GetMessage(L ...

  10. 简单的Ajax实例

    由于刚刚接触Ajax,所以在网上搜了一下如何实现简单的Ajax,在此写下来,也方便自己以后学习 什么是Ajax? 通过在后台与服务器进行少量的数据交换,Ajax可以使网页实现异步更新,这意味着可以在不 ...