Python操作Redis缓存数据库

首先我们需要使用到一个redis库,使用之前先安装一下,使用pip进行安装:

pip install redis

安装好了redis库之后,我们只需使用import redis导入即可使用了,大部分都是通过这两个步骤使用的;
接下来讲解如何操作Redis数据库,介绍一下Redis的五大数据类型:分别是字符串类型string列表类型list集合类型set哈希类型hash有序集合类型 sorted set

开启数据库

要注意我们操作之前需要先开启Redis数据库,如何安装Redis数据库(该步骤省略),那我们现在先打开一个 命令窗口,使用 cd 命令切换目录到 redis 所在的目录运行

redis-server.exe redis.windows.conf

一、字符串类型string

我们先通过例子看一下如何使用string类型数据

import redis
# 连接数据库
client = redis.StrictRedis(host=‘localhost‘, port=6379, db=0)

##### 单个string
result = client.set(‘Mark‘, 100)
print(result)    # 输出:True
age = client.get(‘Mark‘)
print(age.decode())   # 输出:100

##### 多个string
student = {
    ‘name‘: ‘zeng‘,
    ‘age‘: ‘22‘
}
result1 = client.mset(student)
print(result1)   # True
stu = client.mget([‘name‘, ‘age‘])
print(stu)   # 输出:[b‘zeng‘, b‘22‘]

##### 删除操作
d = client.delete(‘name‘, ‘age‘)
print(d)  # 2
result = client.get(‘name‘)
print(result)  # None

上面的例子中分别对单个string、多个string进行了举例,其中涉及到赋值和取值的方法,我们来看一下具体的介绍:

  • set()方法:单个string操作方法,用于设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型;
  • get()方法:单个string操作,用于获取指定 key 的值,如果key不存在,返回nil,如果key储存的值不是字符串类型,返回一个错误;
  • decode()方法:这个大家应该都知道,用于解码;
  • mset():多个string操作,用于同时设置一个或多个key-value对;
  • mget():多个string操作,返回所有给定key的值;
  • delete():删除数据,可以根据key来指定删除数据;

二、列表类型list

import redis
client = redis.StrictRedis(host=‘localhost‘, port=6379, db=0)
  • lpush()方法:令将一个或多个值插入到列表头部,如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作,当 key存在但不是列表类型时,返回一个错误;

注意:在Redis 2.4版本以前的 LPUSH 命令,都只接受单个 value 值;

# 插入一个元素
result = client.lpush(‘lsts‘, ‘name‘)
print(result)

# 创建列表
lsts = (‘name‘, ‘age‘, ‘class‘, ‘score‘)

# 插入多个元素
result = client.lpush(‘lsts‘, *lsts)
print(result)    # 4

lrange()方法:返回列表中指定区间内的元素,区间以偏移量START和END指定,其中0表示列表的第一个元素,1表示列表的第二个元素,以此类推,以-1表示列表的最后一个元素, -2表示列表的倒数第二个元素,以此类推;

# 先加入进入的元素在后面,后加入的元素在前面
result = client.lrange(‘lsts‘, 0, -1)
print(result)   # [b‘score‘, b‘class‘, b‘age‘, b‘name‘]

lpop()方法:用于移除并返回列表的第一个元素;

# 从左边删除一个元素
result = client.lpop(‘lsts‘)
print(result)    # b‘score‘

三、集合类型set

import redis
client = redis.StrictRedis(host=‘localhost‘, port=6379, db=0)

sadd():将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略;

sets = (‘name‘, ‘age‘, ‘class‘, ‘score‘)
result = client.sadd(‘new_sets‘, *sets)
print(result)  # 4

smembers():判断成员元素是否是集合的成员;

result = client.smembers(‘new_sets‘)
print(result)

srem():用于移除集合中的一个或多个成员元素,不存在的成员元素会被忽略;

result = client.srem(‘new_sets‘, ‘address‘)
print(result)   # 1

四、哈希类型hash

import redis
client = redis.StrictRedis(host=‘localhost‘, port=6379, db=0)

hset():用于为哈希表中的字段赋值 ,如果哈希表不存在,一个新的哈希表被创建并进行HSET操作;

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

hkeys():用于获取哈希表中的所有域(field);

print(client.hkeys("hash1")) # [b‘k1‘, b‘k2‘]

hget():用于返回哈希表中指定字段的值;

print(client.hget("hash1", "k1")) # b‘v1‘

hmget():用于返回哈希表中,一个或多个给定字段的值;

print(client.hmget("hash1", "k1", "k2")) # [b‘v1‘, b‘v2‘]

五、有序集合类型 sorted set

import redis
client = redis.StrictRedis(host=‘localhost‘, port=6379, db=0)

zadd(name, *args, **kwargs) :在name对应的有序集合中添加元素;

d = {‘Join‘: ‘20‘}
result = client.zadd("zset1", d)
print(result)  # 1

zcard(name):获取name对应的有序集合元素的数量;

result = client.zcard("zset1")
print(result) 

zcount(name, min, max):获取name对应的有序集合中分数 在 [min,max] 之间的个数;

client.zcount("zset1", 0, 1)

zincrby(name, value, amount) :自增name对应的有序集合的 name 对应的分数;

print(client.zincrby("zset1", 1, ‘20‘))

官网地址https://redis-py.readthedocs.io/en/latest/

原文地址:https://www.cnblogs.com/xiaozengzeng/p/12636127.html

时间: 2024-11-08 05:31:53

Python操作Redis缓存数据库的相关文章

第二百九十七节,python操作redis缓存-List类型,可以理解为列表

python操作redis缓存-List类型,可以理解为列表 List操作,redis中的List在在内存中按照一个name对应一个List来存储.如图:

python操作Redis缓存

一.Redis的安装 xshell连上服务器,依次输入以下代码: wget http://download.redis.io/releases/redis-3.0.6.tar.gz tar xzf redis-3.0.6.tar.gz cd redis-3.0.6 make 如果不巧发生以下截图中的错误: 说明未安装gcc,如果是centos系统,输入:yum install gcc安装gcc即可,然后再次输入make执行. 输入make后,很不幸,再次发生如下截图错误: 推测是因为编译库的问题

Python基础16 - RabbitMQ队列、Redis缓存数据库

@@@文章内容参照老男孩教育 Alex金角大王,武Sir银角大王@@@ RabbitMQ队列 下载安装http://www.rabbitmq.com/install-windows.html RabbitMQ 教程官网:http://www.rabbitmq.com/getstarted.html RabbitMQ:erlang语言 开发的. Python中连接RabbitMQ的模块:pika .Celery(分布式任务队列) .haigha可以维护很多的队列 几个概念说明: Broker:简单

Python学习之使用Python操作Redis数据库

最近在写一个检查一台服务器上所有游戏区服配置文件中redis某个key值大小的脚本,本打算使用shell+awk+sed的方式去解决这个问题,但是由于redis的配置信息是php数组形式.shell脚本一时没有写出来,就请教他人帮忙写了个python脚本,但是自己python不是很精通,于是按照脚本中涉及到的python知识现学现用,然后根据自己的需求更改脚本.这里分享一下如何使用python操作redis数据库. Redis的Python驱动源码下载地址是https://github.com/

redis缓存数据库

缓存数据库介绍 redis操作 缓存数据库介绍 NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库,随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展.NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题. NoSQL数据库的

使用Python操作Redis详解

之前的五天,过了个愉快的周末,然后将公司AbaseDump的调度部分代码看懂并且在此之上完成了OnlyDump的功能代码,代码不可以公开,今天完工,明天测试,晚上来总结一下这几天学到的一点应用. 使用Python操作Redis详解 ------------------------------------------------------------------------------------------------- 一. 文档说明 本文档仅介绍Redis在Python中的使用,Redis

Python操作Redis、Memcache、RabbitMQ、SQLAlchemy

Python操作 Redis.Memcache.RabbitMQ.SQLAlchemy redis介绍:redis是一个开源的,先进的KEY-VALUE存储,它通常被称为数据结构服务器,因为键可以包含string(字符串).hash(哈希).list(链表).set(集合)和zset(有序集合),这些数据类型都支持push/pop.add/remove及取交集和并集及更丰富的操作,redis支持各种不同方式的排序.为了保证效率,数据都是缓存在内存中,它也可以周期性的把更新的数据写入磁盘或者把修改

python 操作 redis

一.简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的

Python 操作Redis

redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性