Python 操作Redis

这篇具有很好参考价值的文章主要介绍了Python 操作Redis。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在 Python中我们使用 redis库来操作 Redis数据库。Redis数据库的使用命令这里就不介绍了。

需要安装 redis库。检查是否安装redis:

pip redis

如果未安装,使用 pip命令安装 redis。

pip install redis #安装最新版本

一、Redis连接

Redis提供两个类 Redis和 StrictRedis用于实现 Redis的命令。

  • StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,
  • Redis是 StrictRedis的子类,用于向后兼容旧版本的 redis-py库。

方式1:单机连接

import redis

redis_conn = redis.Redis(
    host='192.168.xxx.xxx',
    port=16379,
    password='******',
    db=0,
    decode_responses=True)

print(redis_conn) 
# Redis<ConnectionPool<Connection<host=192.168.xxx.xxx,port=16379,db=0>>>

注意:redis 取出的结果默认都是字节(bytes)类型,我们可以设定 decode_responses=True 改成字符串。

方式2:连接池

redis-py 使用 connection pool 来管理对一个 redis server 的所有连接,避免每次建立、释放连接的开销。

默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数 Redis,这样就可以实现多个 Redis 实例共享一个连接池。

import redis

redis_pool = redis.ConnectionPool(
    host='192.168.xxx.xxx',
    port=16379,
    password='******',
    db=0,
    decode_responses=True)

redis_conn = redis.Redis(connection_pool=redis_pool)

print(redis_conn)

二、Redis操作

在 Redis 中设置值,默认,不存在则创建,存在则修改。

1、String字符串

redis基本语法:

set(name, value, ex=None, px=None, nx=False, xx=False)

参数:

  • ex - 过期时间(秒)
  • px - 过期时间(毫秒)
  • nx - 如果设置为True,则只有name不存在时,当前set操作才执行
  • xx - 如果设置为True,则只有name存在时,当前set操作才执行

示例代码如下:

res = redis_conn.set('kk1', 'vv1', ex=30)
v1 = redis_conn.get('kk1')
print(res)  
print(v1)  

res = redis_conn.set('kk2', 'vv字符串', ex=30)
v2 = redis_conn.get('kk2')
print(v2)  

python 连接redis,Python,Python 操作Redis

2、List列表

左边增加:lpush(name,values)
右边增加:rpush(name,values)

示例代码如下:

# 表示从左向右操作
redis_conn.lpush("list1", 11, 22, 33)
print(redis_conn.lrange('list1', 0, -1))  # 取出全部。

# 表示从右向左操作
redis_conn.rpush("list2", 11, 22, 33, 44)
print(redis_conn.llen("list2"))  # 列表长度。
print(redis_conn.lrange("list2", 0, 3))  # 切片取出值,范围是索引号0-3。

python 连接redis,Python,Python 操作Redis

3、Hash哈希

单个增加基本语法:

hset(name, key, value)

参数:

  • name - redis的name
  • key - name对应的hash中的key
  • value - name对应的hash中的value

示例代码如下:

redis_conn.hset("hash1", "k1", "v1")
redis_conn.hset("hash1", "k2", "v2")

print(redis_conn.hkeys("hash1"))  # 取hash中所有的key
print(redis_conn.hget("hash1", "k5"))  # 单个取hash的key对应的值。不存在返回None
print(redis_conn.hmget("hash1", "k1", "k2"))  # 多个取hash的key对应的值

python 连接redis,Python,Python 操作Redis

4、Set集合

新增:sadd(name,values)
获取元素个数:scard(name)
获取集合中所有的成员:smembers(name)

示例代码如下:

redis_conn.sadd("set1", 33, 44, 55, 66)  # 往集合中添加元素

print(redis_conn.scard("set1"))  # 集合的长度是4
print(redis_conn.smembers("set1"))  # 获取集合中所有的成员

python 连接redis,Python,Python 操作Redis

5、其他常用操作

  • 删除:delete(*names)
  • 检查名字是否存在:exists(name)
  • 设置超时时间:expire(name ,time)
  • 获取类型:type(name)
  • 查看所有元素–迭代器:scan_iter(match=None, count=None)

通过上面示例,其实在Python操作Redis数据库,主要还是要熟悉 Redis数据库的相关命令和语法。更多操作大家举一反三。

三、Redis操作封装

这里通过类简单封装一下 Redis数据库的相关操作。

代码如下:

import redis

# RedisUtils 操作工具类
class RedisUtils:

    def __init__(self, db=0, decode_responses=True):
        self.conn = redis.StrictRedis(
            host='192.168.xxx.xxx',
            port=16379,
            password='******',
            db=db,
            decode_responses=decode_responses
        )

    '''
        list相关操作方法
    '''
    # 创建或者增加列表数据的操作 rpush, lpush
    def list_push(self, key, push_var='r', *value):
        # print(value)
        if push_var == 'r':
            self.conn.rpush(key, *value)
        elif push_var == 'l':
            self.conn.lpush(key, *value)

    # 删除列表数据的操作 lpop, rpop, lrem指定删除 count=0 代表删除全部
    #    count 也代表数量
    def list_pop(self, key, count, value, pop_var='r'):
        if pop_var == 'r':
            # 从右边删除
            self.conn.rpop(key)
        elif pop_var == 'l':
            # 从左边删除
            self.conn.lpop(key)
        elif pop_var == 'm':
            # 指定删除全部元素
            self.conn.lrem(key, count, value)
        elif pop_var == 'c':
            list2 = self.conn.lrange(key, 0, -1)
            # 遍历删除全部元素
            for value in list2:
                self.conn.lrem(key, count, value)

    # 修改所在索引的元素:lset lset key index value
    def list_set(self, key, index, value):
        self.conn.lset(key, index, value)

    # 查看列表元素所在的索引:lrange
    def list_get(self, key, start_index, end_index):
        print(self.conn.lrange(key, start_index, end_index))


# 测试方法

redisUtils = RedisUtils(db=1, decode_responses=True)
print(redisUtils.conn)

# 从右边插入列表数据
redisUtils.list_push('list1', 'r', '张三', '李四', '王五')

# 修改指定索引的元素
redisUtils.list_set('list1', 2, '赵云')

# 查看列表
redisUtils.list_get('list1', 0, -1)

# 删除全部
redisUtils.list_pop('list1', 0, '', 'c')

python 连接redis,Python,Python 操作Redis

– 求知若饥,虚心若愚。文章来源地址https://www.toymoban.com/news/detail-682714.html

到了这里,关于Python 操作Redis的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Redis简介及Python操作方法

    Redis 是一个开源的基于内存也可持久化的 Key-Value 数据库,采用 ANSI C语言编写。它拥有丰富的数据结构,拥有事务功能,保证命令的原子性。由于是内存数据库,读写非常高速,可达 10w/s 的评率,所以一般应用于数据变化快、实时通讯、缓存等。但内存数据库通常要考虑机器

    2024年02月04日
    浏览(31)
  • Python 操作 Redis 数据库介绍

    Redis 作为常用的 NoSql 数据库,主要用于缓存数据,提高数据读取效率,那在 Python 中应该如果连接和操作 Redis 呢?今天就为大概简单介绍下,在 Python 中操作 Redis 常用命令。 首先还是需要先安装 redis 模块,使用如下命令: 安装成功后就可以在代码中导入模块,然后通过创建

    2024年02月11日
    浏览(40)
  • 【个人博客系统 × Redis】“最后的升级” · 连接Redis · Redis的基本使用

    【JavaEE】进阶 · 个人博客系统(7) 1.1 通过yum商店下载Redis 1.2 启动Redis 1.3 操作Redis Ctrl C 可关闭这个进程(万能地杀死进程) 2.1 set 灰色部分为提示 2.2 get 灰色部分为提示 中文被转义了~ 正常情况下: 键值对存在,行为是覆盖! 对于windows,一般是个人电脑,为项目的开发环

    2024年02月09日
    浏览(29)
  • VsCode连接Mysql、Redis、MariaDB、SQL Server等数据库并进行可视化操作。无需额外的去下载可视化数据软件了,VsCode前端很方便的插件!!!

    前言:VsCode直接连接并操作数据库!最近使用公司的新电脑时,才发现好多东西需要重新下载 、配置,最近偶然接触到了 VsCode 的 Database Clinent 插件,可连接众多的服务,其中就支持连接到本地和远程的数据库,可视化操作、语句查询、导入、导出数据等基本功能集合,个人

    2024年02月05日
    浏览(50)
  • 配置redis.conf 使其他电脑连接本机redis

    配置步骤 打开redis.conf redis.conf 文件中把 bind 127.0.0.1 注释掉,或者改为: bind 0.0.0.0 ,并将 protected-mode yes   改为 protected-mode no   附注: bind:是绑定本机的IP地址,(准确的是:本机的网卡对应的IP地址,每一个网卡都有一个IP地址),而不是redis允许来自其他计算机的IP地址

    2024年02月09日
    浏览(32)
  • 在Ubuntu系统中测试Redis连接池——redis++方案

    上面代码启动了500个线程,它们公用一个redis连接池。该池子上限被设置为300个。每个线程内部会查询1000000次,以维持程序运行,让我们可以观察到中间连接数变化。 使用下面的脚本进行编译 使用下面命令进入交互界面 然后使用下面命令查看连接数,connected_clients为1,即当

    2024年02月07日
    浏览(24)
  • 【Redis】redis入门+java操作redis

    目录 一、Redis入门 1.1 Redis简介 1.2 Redis下载与安装 1.2.1 下载 1.2.2 linux安装 1.2.3 windows安装  1.3  Redis服务启动与停止 1.3.1 linux启动、停止Redis服务 1.3.2 windows启动、停止Redis服务 1.4 修改Redis启动密码 1.4.1 Linux修改设置 1.4.2 windows设置 1.5 修改Redis运行远程连接 1.5.1 linux 1.5.2 window

    2024年02月10日
    浏览(26)
  • 部署LNP+Redis、创建Redis集群、连接集群、集群工作原理

    常用命令的使用 64 配置64本机的nginx网站服务可以把数据存储在本机的内存里 在64运行nginx服务,并配置可以解析php脚本 在64主机运行redis服务,并允许在127地址连接服务 修改服务运行参数 部署LNP + Redis 配置nginx网站的php脚本可以连接redis服务 存储数据 在64部署LNP环境 安装源

    2024年01月23日
    浏览(26)
  • Redis-使用java代码操作Redis->java连接上redis,java操作redis的常见类型数据存储,redis中的项目应用

    java连接上redis java操作redis的常见类型数据存储 redis中的项目应用 1.java连接上redis 2.java操作redis的常见类型数据存储 3.redis中的项目应用 redis一般用在哪? 存储基本不会变化的数据,然后这些数据又被多个地方使用 redix怎么用 用String 将存储的数据转换成json串,进行存储 在

    2024年02月05日
    浏览(39)
  • 概述、搭建Redis服务器、部署LNP+Redis、创建Redis集群、连接集群、集群工作原理

    Top 案例1:搭建redis服务器 案例2:常用命令限 案例3:部署LNP+Redis 案例4:创建redis集群 1.1 具体要求如下 在主机redis64运行redis服务 修改服务运行参数 ip 地址192.168.88.64 服务监听的端口6364 redis服务的连接密码为 tarenaplj 1.2 方案 准备1台新虚拟机,要求如表-1所示。   1.3 步骤 实

    2024年02月12日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包