iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python访问Redis的详细操作
  • 914
分享到

Python访问Redis的详细操作

2024-04-02 19:04:59 914人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录1.连接2.String字符串3.列表4.集合5.哈希6.有序集合1.连接 测试连接是否成功: import Redis r = redis.Redis(host='192.

1.连接

测试连接是否成功:


import Redis
r = redis.Redis(host='192.168.136.102', port=6379, db=0,decode_responses=True)
r.set('foo', 'bar')
print(r.get('foo'))
del r

redis 取出的结果默认是字节,我们可以设定 decode_responses=True 改成字符串。

redis 提供两个类 Redis 和 StrictRedis, StrictRedis 用于实现大部分官方的命令,Redis 是 StrictRedis 的子类,用于向后兼用旧版本。


import redis   # 导入redis 模块
r = redis.Redis(host='192.168.136.102', port=6379, decode_responses=True)
r.set('name', 'runoob')  # 设置 name 对应的值
print(r['name'])
print(r.get('name'))  # 取出键 name 对应的值
print(type(r.get('name')))  # 查看类型
del r

连接池

redis-py 使用 connection pool 来管理对一个 redis server 的所有连接,避免每次建立、释放连接的开销。
默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数 Redis,这样就可以实现多个 Redis 实例共享一个连接池。


import redis    # 导入redis 模块
pool = redis.ConnectionPool(host='192.168.136.102', port=6379, decode_responses=True)
r = redis.Redis(connection_pool=pool)
r.set('name', 'runoob')  # 设置 name 对应的值
print(r.get('name'))  # 取出键 name 对应的值

对比

在这里插入图片描述

2.String字符串

String使用场景:
1、用redis当缓存层来加速读写性能降低后端的压力
2、计数器
3、时间内限制请求次数

1.String set 设置单个键值
set(name, value, ex=None, px=None, nx=False, xx=False)
ex:过期时间(秒),时间到了后redis会自动删除
px:过期时间(毫秒),时间到了后redis会自动删除。ex、px二选一即可
nx:如果设置为True,则只有name不存在时,当前set操作才执行
xx:如果设置为True,则只有name存在时,当前set操作才执行


r.set('name', 'zhangsan',ex=3)  
r.set('name', 'lisi',nx=True)  #如果设置为True,则只有name不存在时,当前set操作才执行
r.set('name', 'wangwu',xx=True)  #如果设置为True,则只有name存在时,当前set操作才执行

2.String get 获取单个值


v = r.get('name')
print(v)

3.String mset 设置多个键值
mset(*args, **kwargs)


name_dict = {
    'name_1' : 'zhangsan',
    'name_2' : 'lisi'
}
r.mset(name_dict)

4.String mget 获取多个值


mget(keys, *args)
r.mget('name_1', 'name_2')

5.String setrange 根据索引修改某个键的value值
setrange(name, offset, value)
返回值为:修改后的字符串长度
name:键,所给不存在时自动添加
offset:偏移量,以0开始
value:修改的字符或字符串,字符串时以offset向后顺延


length = r.setrange('name_2', 1, 'zhihu')
print(length)

6.String getrange 根据索引获取某个键的部分value值
若所给的键不存在时,返回空值 b''
getrange(key, start, end)


v = r.getrange('name_1', 0, 2)

7.String strlen 获取value的长度
strlen(name)
所给的键不存在时,返回值为0


length = r.strlen('name_2')

8.String append value后面追加
append(key, value)
若所给的键不存在,则设置新值,返回值为修改后的字符串的长度


length = r.append('name_1', '666')

3.列表

1.lpush(key , value) 将一个或多个值 value 插入到列表 key 的表头


 r.lpush('list', 'a', 'b', 'c', 'd')

2.rpush(key , value) 将一个或多个值 value 插入到列表 key 的表尾


r.rpush('rlist', 'a', 'b', 'c', 'd')

3.llen key 返回列表 key 的长度


 r.llen('list')

4.lrem key count value 根据参数 count 的值,移除列表中与参数 value 相等的元素


r.lrem('list',2, 'b')

4.集合

1.sadd(name,values) 向对应的集合中添加元素


r.sadd("set1", 33, 44, 55, 66) 

2.scard(name)
获取name对应的集合中元素个数


r.scard('set1')

3.srandmember key [count] 返回集合中的 1 或 count 个随机元素


r.srandmember("set1") 

4.spop key 移除并返回集合中的一个随机元素获取name对应的集合中元素个数


r.spop('set1')

5.smove source destination member 将 member 元素从 source 集合移动到 destination 集合


  r.smove('set1', 'set2', 66)

5.哈希

1.hmset key field value [field value …]同时将多个 field-value (域-值)对设置到哈希表 key 中


r.hmset('zhangsan',{'name':'zhangsan','age':20,'tel':123456})

2.Hash hmget 获取哈希中多个键值对


hmget(name, keys, *args)

返回值:值的列表 list 形如: [‘1', ‘123'] <class ‘list'>


r.hmget('zhangsan', ['sex', 'tel'])

3.Hash hget 获取指定key的值
hget(name, key)


r.hget('zhangsan', 'tel')

4.Hash hgetall 获取哈希中所有的键值对
hgetall(name)
返回值:dict类型


r.hgetall('zhangsan')

6.有序集合

1.Zset zadd 有序集合中添加元素
zadd(name, *args, **kwargs)
添加元素时需指定元素的分数
返回值:返回添加的个数


r.zadd('myzset', {'a': 3, 'b': 4,'c':5})
r.zadd('myzset', 'a', 3, 'b', 4,'c',5})  #不同版本

2.Zset zcard 返回有序集合中元素个数
zcard(name)


v = r.zcard('myzset')

3.Zset zscore 返回有序集合中指定某个值的分数
zscore(name, value)
返回值:float 类型的分数;形如: -5.0 <class ‘float'>


v = r.zscore('myzset', ‘a')

4.Zset zincrby 增加有序集合中某个值的分数
zincrby(name, value, amount=1)
value:若存在,则增加其amount分数;若不存在,则增加新值以及对应的分数
amount:增加的值,可以为负数
返回值:增加后的分数 float类型 ;


v = r.zincrby('myzset',1,'a')

5.Zset zrevrange 返回有序集合分数排序的一段数据
zrevrange(name, start, end, withscores=False, score_cast_func=float)
name:redis的name
start:有序集合索引起始位置(非分数)
end:有序集合索引结束位置(非分数)
withscores:是否获取元素的分数,默认只获取元素的值
score_cast_func:对分数进行数据转换的函数
返回值:list类型


r.zadd('myzset1', {'a': 4, 'b': 2,'c':3,'d':6,'e':1,'f':9})
def double(num):
    return float(num)*float(num)
print(r.zrevrange('myzset1',0,3,withscores=True))
print(r.zrevrange('myzset1',0,3,withscores=True,score_cast_func=double))

以上就是python访问Redis的详细内容,更多关于Python访问Redis的资料请关注编程网其它相关文章!

--结束END--

本文标题: Python访问Redis的详细操作

本文链接: https://www.lsjlt.com/news/129184.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python访问Redis的详细操作
    目录1.连接2.String字符串3.列表4.集合5.哈希6.有序集合1.连接 测试连接是否成功: import redis r = redis.Redis(host='192....
    99+
    2024-04-02
  • Java操作Redis详细介绍
    1. 简介Redis 是一个开源(BSD许可)的,内存中的key-value存储系统,它可以用作数据库、缓存和消息中间件。2. 对key的操作首先要建立连接Jedis jedis = new Jedis("127.0.0.1", 6379)...
    99+
    2023-05-30
    java redis使用
  • Redis并发访问问题详细讲解
    目录前言什么场景需要控制并发访问并发访问的控制方法1、加入锁机制2、操作原子化小结前言 我们在使用Redis的过程中,难免会遇到并发访问及数据更新的问题。但很多场景对数据的并发修改是很敏感的,比如库存数据如果没有做好并发...
    99+
    2022-12-02
    Redis并发访问 Redis控制并发访问
  • Java中操作Redis的详细方法
    目录1.准备操作 1.1新建工程1.2sca-jedis工程依赖1.3sca-tempalte工程依赖1.4测试是否可以连接Redis1.5修改redis.conf文件2....
    99+
    2024-04-02
  • Python pymysql操作MySQL详细
    目录1、使用1.1 简单使用1.2 封装工具类1、使用 1.1 简单使用 import pymysql # 创建连接 con = pymysql.connect( ...
    99+
    2024-04-02
  • 详细解读python操作json文件的详细
    目录json支持的格式:代码操作1.json转化为python2. python序列化为json总结 json转化为python表示反序列化 python转化为json表示为序列...
    99+
    2024-04-02
  • 访问阿里云服务器休眠的详细操作步骤
    随着互联网的不断发展,越来越多的企业和个人开始使用云计算服务。阿里云作为国内最大的云计算服务提供商,提供了丰富的服务,包括服务器托管、云数据库、云存储等。在使用阿里云服务器的过程中,可能会遇到需要休眠的情况。本文将详细介绍如何访问阿里云服务...
    99+
    2023-12-13
    阿里 操作步骤 服务器
  • python访问redis
    首先说一下在Windows下安装Redis,安装包可以在https://github.com/MSOpenTech/redis/releases中找到,可以下载msi安装文件,也可以下载zip的压缩文件。下载zip文件之后解压,解压后是这些...
    99+
    2023-01-31
    python redis
  • Python 操作 MongoDB 讲解详细
    目录1、连接MongoDB2、指定(切换)数据库3、指定(切换)集合4、插入数据5、查询数据6、统计查询7、结果排序8、偏移 9、更新数据10、删除数据 1、连接MongoDB 需要...
    99+
    2024-04-02
  • Python中切片的详细操作篇
    目录Python中的切片知识.一、切片的索引方式二、索引的一般方式三、 切片操作的 详细切法1.切割单个值2.切割完整对象3.当start和end全部为正数时.4.当start和en...
    99+
    2024-04-02
  • 详细解读Python中的json操作
    目录1.什么是Json2.python数据类型与json数据类型的映射关系3. json中常用的方法3-1   json.dumps()3-2 json.load...
    99+
    2024-04-02
  • Python操作redis
    Python操作redispythonredis数据库searchimport首先确保redis已经正常启动。安装   可以去pypi上找到redis的Python模块:   http://pypi.python.org/pypi%3Aac...
    99+
    2023-01-31
    操作 Python redis
  • Python 操作Redis
    在 Python中我们使用 redis库来操作 Redis数据库。Redis数据库的使用命令这里就不介绍了。 需要安装 redis库。检查是否安装redis: pip redis 如果未安装,使...
    99+
    2023-09-16
    Python 操作Redis
  • python之操作redis
    # coding:utf8 # 导入模块 import redis # 连接redis库 # r = redis.Redis(host='192.168.10.128',port=6379,db=0) # 主要是为了向后兼容 r = red...
    99+
    2023-01-31
    操作 python redis
  • python 操作 redis,redi
    python 操作redis 需要导入redis模块import redis """ 连接redis ConnectionPool 方式连接 """ def connRedis(self): ...
    99+
    2023-01-31
    操作 python redi
  • Python利用flask操作Redis的方法详解
    目录简单示例python flask 操作 Redis 更多内容通过 Flask 存储字符串、列表和字典使用 Flask 操作 Redis 可以通过安装 Redis 的 Python...
    99+
    2023-02-01
    Python flask操作Redis Python flask Redis Python 操作Redis
  • Python之Redis操作
    目录 一. 介绍A. 什么是 Redis?B. Redis 的特点和用途C. Python 操作 Redis 的优势 二. 使用 Redis 客户端库A. 安装 Redis 客户端库B...
    99+
    2023-08-31
    redis python
  • Python远程SSH库Paramiko详细操作
    目录核心组件SSHClient常用方法SFTPClient常用方法使用示例SSH私钥创建SSHClient运行命令SFTPClient下载文件paramiko是用python语言写的...
    99+
    2024-04-02
  • Python文件的操作示例的详细讲解
    目录1. 文件的读写原理:2. 常用的文件打开模式3. 文件对象的常用方法4. 目录的相关操作1. 文件的读写原理: 文件的读写称为I/O操作。 操作原理: .py文件是用解释器...
    99+
    2024-04-02
  • 【Redis】用python操作redis集群
    https://blog.csdn.net/bitcarmanlee/article/details/51852126  密码不能写到列表中去: 有密...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作