Python调用Redis的示例代码
作者:LeoZhanggg 发布时间:2021-02-10 09:51:10
标签:Python,调用,Redis
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# *************************************
# @Time : 2019/8/12
# @Author : Zhang Fan
# @Desc : Library
# @File : MyRedis.py
# @Update : 2019/8/23
# *************************************
import redis
class MyRedis(object):
"""
===================================================================
===================== MyRedis ========================
===================================================================
"""
def __init__(self):
self.redis_conn = None
self.redis_db = None
def connect_to_redis(self, redis_host, redis_port=6379, db=0, password=None):
"""
连接到Redis服务器
"""
self.redis_db = db
print('Executing : Connect To Redis | host={0}, port={1}, db={2}, password={3}'
.format(redis_host, redis_port, self.redis_db, password))
try:
self.redis_conn = redis.StrictRedis(
host=redis_host, port=redis_port, db=self.redis_db, password=password)
except Exception as ex:
logger.error(str(ex))
raise Exception(str(ex))
def redis_key_should_be_exist(self, name):
"""
验证redis存在指定键
"""
if not self.redis_conn.exists(name):
logger.error(("Redis of db%s doesn't exist in key [ %s ]." % (self.redis_db, name)))
raise AssertionError
def redis_key_should_not_be_exist(self, name):
"""
验证redis不存在指定键
"""
if self.redis_conn.exists(name):
logger.error(("Redis of db%s exist in key [ %s ]." % (self.redis_db, name)))
raise AssertionError
def getkeys_from_redis_bypattern(self, pattern, field=None):
"""
获取redis所有键值
"""
keys_list = list()
print('Executing : Getall Key | %s' % pattern)
if field is None:
return self.redis_conn.keys(pattern)
else:
keys = self.redis_conn.keys(pattern)
for key in keys:
if not self.redis_conn.hget(key, field) is None:
keys_list.append(key)
return keys_list
# ========================== String Type =============================
def get_from_redis(self, name):
"""
获取redis数据
"""
print('Executing : Get Key | %s' % name)
return self.redis_conn.get(name)
def del_from_redis(self, name):
"""
删除redis中的任意数据类型
"""
return self.redis_conn.delete(name)
def set_to_redis(self, name, data, expire_time=0):
"""
设置redis执行key的值
"""
return self.redis_conn.set(name, data, expire_time)
def append_to_redis(self, name, value):
"""
添加数据到redis
"""
return self.redis_conn.append(name, value)
# ========================== Hash Type ==========================
def hgetall_from_redis(self, name):
"""
获取redis hash所有数据
"""
print('Executing : Hgetall Key | %s' % name)
return self.redis_conn.hgetall(name)
def hget_from_redis(self, name, key):
"""
获取redis hash指定key数据
"""
print('Executing : Hget Key | %s' % name)
return self.redis_conn.hget(name, key)
def hset_to_redis(self, name, key, data):
"""
设置redis指定key的值
"""
print(('Executing : Hset Redis | name={0}, key={1}, data={2}'
.format(name, key, data)))
return self.redis_conn.hset(name, key, data)
def hdel_to_redis(self, name, *keys):
"""
删除redis指定key的值
"""
print('Executing : Hdel Key | ', *keys)
self.redis_conn.hdel(name, *keys)
# ========================= ZSet Type ================================
def get_from_redis_zscore(self, name, values):
"""
获取name对应有序集合中 value 对应的分数
"""
try:
return int(self.redis_conn.zscore(name, values))
except:
return self.redis_conn.zscore(name, values)
def get_from_redis_zrange(self, name, start=0, end=10):
"""
按照索引范围获取name对应的有序集合的元素
"""
return self.redis_conn.zrange(name, start, end, desc=False, withscores=True, score_cast_func=int)
def del_from_redis_zrem(self, name, values):
"""
删除name对应的有序集合中值是values的成员
"""
return self.redis_conn.zrem(name, values)
def add_from_redis_zadd(self, name, value, score):
"""
在name对应的有序集合中添加一条。若值存在,则修改对应分数。
"""
return self.redis_conn.zadd(name, {value: score})
def count_from_redis_zcard(self, name):
"""
获取name对应的有序集合元素的数量
"""
return self.redis_conn.zcard(name)
if __name__ == '__main__':
print('This is test.')
mr = MyRedis()
来源:https://www.cnblogs.com/leozhanggg/p/11401444.html
0
投稿
猜你喜欢
- 例子是输出九九乘法表如果按照如下程序写:# 输出九九乘法表 for i in range(10): for j in range
- 本文实例讲述了Python实现导出数据生成excel报表的方法。分享给大家供大家参考,具体如下:#_*_coding:utf-8_*_imp
- 有很多种方法来实现图片的预加载,通常大部分使用Javascript让事情滚动。不要再受Javascript预载的束缚了吧,用CSS你就可以毫
- 本文实例为大家分享了python实现计算器功能的具体代码,供大家参考,具体内容如下前缀表达式运算符在数字的前面1 + (2 + 3) * 4
- 下面的demo是根据需求写的简单测试脚本#!/usr/bin/env python# coding: utf-8# 第一个列表为依赖组件和版
- find()方法判断字符串str,如果起始索引beg和结束end索引能找到在字符串或字符串的一个子串中。语法以下是find()方
- Python对象动态的增加属性和方法前面我们了解到数据封装、继承和多态只是面向对象程序设计中最基础的3个概念。在Python中,面向对象还有
- 这篇文章主要介绍了基于Python获取docx/doc文件内容代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学
- 安装 NumPy如果你已经在系统上安装了 Python 和 PIP,那么安装 NumPy 非常容易。请使用这条命令安装它:C:\Users\
- 在crnn训练的时候需要用到lmdb格式的数据集,下面是python生成lmdb个是数据集的代码,注意一定要在linux系统下,否则会读入图
- 目录一、前言二、Json.loads与eval 性能对比1. eval2. json.loads一、前言最近发现一些小伙伴使用eval来处理
- 简单的Python代码:用户登录注册利用业余时间,写了一个用户进行登录注册的代码,非常简单。主要实现的功能是:1、可以进行用户登录,在用户进
- 1、选取最适用的字段属性MySQL 可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建
- 我们网站的静态资源(css、js和背景图片)和web应用程序是分开部署的,几乎所有的静态资源都部署在同一个应用下。最开始的网站
- 如何根据二维数组中的某一行或者某一列排序?假设data是一个numpy.array类型的二维数组,可以利用numpy中的argsort函数进
- 这两天在测试过程中,遇到这样的问题:数据量很大,一份csv文件的数据与另外一个文件的数据进行对比,但是csv中的文件数据量很大,并且进行统计
- 0x 00 返回值简介回顾下,上一节简单介绍了函数及其各种参数,其中也有简单介绍 print 和 return 的区别,print 仅仅是打
- 本文介绍用python实现的搜索本地文本文件内容的小程序。从而学习Python I/O方面的知识。代码如下:import os#根据文件扩展
- 使用 OpenAI API 和相应的 Python SDK 试用 GPT-3 语言模型。介绍在本文中,我们将使用 GPT-3。我将向您展示如
- 错误信息PS D:\parttime\python\django\guanxiangzhiji> python manage.py m