python-redis连接池
python连接redis
在python中,要操作redis,目前主要是通过一个python-redis模块来实现
1、在python中安装redis模块
pip3 install redis
2、在python中使用redis
跟其他模块一样,在安装好redis模块后,要使用redis模块就要先导入。
python连接redis数据库:
-
#!/usr/bin/env python
-
# -*- coding:utf8 -*-
-
-
import redis
-
-
'''
-
这种连接是连接一次就断了,耗资源.端口默认6379,就不用写
-
r = redis.Redis(host='127.0.0.1',port=6379,password='tianxuroot')
-
r.set('name','root')
-
print(r.get('name').decode('utf8'))
-
'''
-
'''
-
连接池:
-
当程序创建数据源实例时,系统会一次性创建多个数据库连接,并把这些数据库连接保存在连接池中,当程序需要进行数据库访问时,
-
无需重新新建数据库连接,而是从连接池中取出一个空闲的数据库连接
-
'''
-
pool = redis.ConnectionPool(host='127.0.0.1',password='helloworld') #实现一个连接池
-
-
r = redis.Redis(connection_pool=pool)
-
r.set('foo','bar')
-
print(r.get('foo').decode('utf8'))
封装使用
-
import redis
-
-
-
class Mredis:
-
"""redis连接池"""
-
-
def __init__(self) -> None:
-
self.pool = redis.ConnectionPool(host='localhost', port=6379, password=123456)
-
self.conn = redis.Redis(connection_pool=self.pool)
-
-
# 删除键
-
def del_key(self, key):
-
self.conn.delete(key)
-
-
# 字符串添加
-
def str_set(self, key, val):
-
self.conn.set(key, val)
-
-
# 字条串读取
-
def str_get(self, key):
-
return self.conn.get(key)
-
-
# 字符串添加
-
# 设置键值: name="alice" 且超时时间为10秒,(值写入到redis时会自动转字符串)
-
# conn.set("name", "alice", ex=10)
-
def str_time_set(self, key, val, time):
-
self.conn.set(key, val, ex=time)
-
-
# 列表
-
# 从类别左侧进
-
def l_push(self, key, value):
-
self.conn.lpush(key, value)
-
-
# 从列表右侧进
-
def r_push(self, key, value):
-
self.conn.rpush(key, value)
-
-
# 列表长度
-
def t_len(self, key):
-
return self.conn.llen(key)
-
-
# 从右侧移除一个元素并返回对应值
-
def r_pop(self, key):
-
return self.conn.rpop(key)
-
-
# 获取列表中所有值
-
def all_list(self, key):
-
return self.conn.lrange(key, 0, -1)
-
-
# 有侧开始删除n个值
-
def rem_n_value(self, key, count, value):
-
return self.conn.lrem(key, -count, value)
-
-
# hash
-
# 添加
-
def hash_add(self, pkey, key, v):
-
self.conn.hset(pkey, key, v)
-
-
# 单个
-
def hash_get(self, pkey, key):
-
return self.conn.hget(pkey, key)
-
-
# 获取所有
-
def hash_getall(self, pkey):
-
return self.conn.hgetall(pkey)
-
-
# hsetnx 给哈希表key添加field-value对,当且仅当域field不存在
-
def hash_setnx(self, pkey, key, v):
-
self.conn.hsetnx(pkey, key, v)
-
-
# jiajian 为哈希表key中的域field的值加上<incerment>
-
def hash_jiajian(self, pkey, key, count):
-
self.conn.hincrby(pkey, key, count)
-
# 删除hash中的指定字段, 字段对应的值会一起删除
-
-
def hsah_hdel(self, pkey, key):
-
self.conn.hdel(pkey, key)
-
-
# setnx
-
def str_setnx(self, key, v):
-
return self.conn.setnx(key, v)
-
-
def store_change(self, key, count, type):
-
# type1加 2减
-
if type == 1:
-
self.conn.decrby(key, count)
-
else:
-
self.conn.incrby(key, count)
-
-
# set
-
def set_add(self, k, v):
-
self.conn.sadd(k, v)
-
-
def set_getall(self, k):
-
return self.conn.smembers(k)
-
-
def set_del(self, k):
-
return self.conn.delete(k)
-
-
-
mredis = Mredis()
更详细的请参考:
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfhjaej
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01