python加redis使用教程_python 之redis方法整合

为了方便模块的调用和查看,封装redis方法(常用,之后补全所有)

1、python所有的redis方法都指向一个文件,方便更改和补充

2、不需要每次都查redis的语法,高内聚,低耦合

3、可以直接查看哪里调用了,方便review代码

ps:干货整理不易,转载请注明出处

redisCache= { #setting里配置redis

'host': '127.0.0.1',

'port': 6379,

'db': 1,

'decode_responses':True #指定字符串类型

}

redisCache2= {

'host': '127.0.0.1',

'port': 6379,

'db': 2,

'decode_responses':True #指定字符串类型

}

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

import redis

from xxx.settings import redisCache, redisCache2

class RedisQueue:

def __init__(self, name):

pool = redis.ConnectionPool(**redisCache)

self.db = redis.Redis(connection_pool=pool)

self.key = name

################################################### 字符串方法 ###################################################

#加入缓存,存在会替换

def addStr(self, values): #value可以为复杂的json

return self.db.set(self.key, values)

# 不存在则加入,否则不变

def addStrNX(self,values): # value可以为复杂的json

return self.db.setnx(self.key,values)

# 加入缓存,存在会替换,并加入过期时间

def addStrEX(self,time, values): # value可以为复杂的json

return self.db.setex(self.key,time, values)

#获取缓存

def getStr(self):

return self.db.get(self.key)

################################################### 列表方法 ###################################################

# 返回队列里面list元素的长度

def listLen(self):

return self.db.llen(self.key)

# 添加新元素到队列的最右方

def add2right(self, *values):

self.db.rpush(self.key, *values) #rpush 如何没有列表会创建 rpushx不创建

# 返回并删除队列里的第一个元素,如果队列为空返回的None

def getAndPopFirst(self):

item = self.db.lpop(self.key)

return item

# 获取列表对应索引的值

def getItemIndex(self,index):

indexValue = self.db.lindex(self.key, index)

return indexValue

#获取列表所有元素

def getAllListItem(self):

allItemList=self.db.lrange(self.key, 0, -1)

return allItemList

# 获取列表start-end的元素,切头切尾

def getListItem(self,start,end):

itemList = self.db.lrange(self.key, start,end)

return itemList

#删除列表中value

def delValue(self,value):

self.db.lrem(self.key, 1, value)

# 删除列表中指定数量的value

def delMoreValue(self,count, value):#count为0表示删除所有值为value的元素

self.db.lrem(self.key, count, value)

# 获取并只保留start-end的元素,切头切尾

def saveStart2end(self, start, end):

start2endList = self.db.ltrim(self.key, start, end)

return start2endList

################################################### 集合方法 ###################################################

#加入集合中

def add2set(self,*values):

self.db.sadd(self.key, *values)

#查看元素是否存在集合中

def memberExist(self,member):

check=self.db.sismember(self.key,member)

return check

################################################### 散列方法 ###################################################

#添加

def set2hash(self,key,value):

self.db.hset(self.key, key,value)

#不存在才添加

def set2hashNX(self,key,value):

self.db.hsetnx(self.key, key,value)

# 批量添加

def batchSet2hash(self, mapping):

self.db.hmset(self.key, mapping)

#获取key对应的value

def getValue(self,key):

value=self.db.hget(self.key, key) #key不存在会返回None

return value

# 批量获取多个key对应的value

def batchGetValue(self, keyList):

value = self.db.hmget(self.key, keyList) #key不存在会返回None ['a', 's', None, None]

return value

# 删除key-value

def delKeyValue(self, *keys):

self.db.hdel(self.key, *keys)

#判断散列中是否存在

def keyExist(self,key):

check=self.db.hexists(self.key, key)

return check

# 获取所有key

def getAllKey(self):

check = self.db.hkeys(self.key)

return check

# 获取所有value

def getAllValue(self):

check = self.db.hvals(self.key)

return check

# 获取所有key-value

def getAllKeyValue(self):

check = self.db.hgetall(self.key)

return check

# key对应的value增长amount

def increaseValue(self,key,amount): #针对值为数量使用 ,key不存在也可以直接加

check = self.db.hincrby(self.key, key, amount)

return check

# 获取散列长度

def getDicLen(self):

check = self.db.hlen(self.key)

return check

################################################### 通用方法 ###################################################

# 查看过期时间

def checkExpireTime(self):

item = self.db.ttl(self.key)

return item

# 设置过期时间

def setExpireTime(self,time):

item = self.db.expire(self.key, time)

return item

#另一个db,继承使用

class RedisStatistics(RedisQueue):

def __init__(self, name):

pool = redis.ConnectionPool(**redisCache2)

self.db = redis.Redis(connection_pool=pool)

self.key = name

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值