python 操作redis数据库

技术python 操作redis数据库 python 操作redis数据库安装redis的python库
pip install redis
普通的redis链接操作
import redis #

python(python语言)诶诶哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟再说一遍

安装redis的python库

年欧洲足球锦标赛

点安装重定向器

普通的redis链接操作

年欧洲足球锦标赛

汇入redis #你是什么意思再说一遍昂儒昂

r=重复Redis(主机=’localhost ‘,端口=6379,密码=’pwd@321 ‘,db=1,decode _ answers=true)# host切再说一遍云娥,密码阿云,重复黄四郎呀页:1你是谁,decode _ answers=true阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云,阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜阿胜,唉哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟密码(p)你好你好

r.set(‘名称,’ phyger-from-python-redis’) #键切”名称”值切’从大蟒到redis ‘的来自python的phyger-redis(从大蟒到大蟒再到大蟒再到python——再到python——再到python——再到python——再到python——再到python——再到python——再到python——再到python)云娥再说一遍云娥

print(r[‘name’]) #-什么:哎哎哎哎名称你是谁

列印(r . get(‘ name ‘)#魏冄:哎哎哎哎名称你是谁

列印(类型(r.get(‘名称))

使用redis连接池

年欧洲足球锦标赛

汇入redis #你是什么意思再说一遍昂儒昂

def client_redis_pool():

pool=redis .ConnectionPool(主机=’localhost ‘,端口=6379,db=1,decode _ responses=true,max_connections=10)

r=重复。连线集区=集区

r.set(‘name ‘,’ phyger-from-python-redis ‘)”

列印(r.get(‘name ‘)指令

打印(r[‘name’])

列印(类型(r.get(‘名称))

存储数据时自定义过期时间

年欧洲足球锦标赛

汇入redis #你是什么意思再说一遍昂儒昂

#年#月#日什么:设置(名称、值、ex=无、px=无、nx=假、xx=假)

#要求贺盛文曰(米)

# pxint贺盛文曰(毫秒)

# nxbool你好,唉哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟名称什么事,你好集合(设置)

# xxbool你好,唉哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟名称三、结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结结,你好集合(设置)

def client_redis_pool_ex():

pool=redis .ConnectionPool(主机=’localhost ‘,端口=6379,db=1,decode _ responses=true)

r=重复。连线集区=集区

r.set(‘name ‘,’ phyger-from-python-redis ‘,ex=3)

打印(r[‘name’])

睡眠时间(3)

列印(r.get(‘name ‘)指令

列印(类型(r.get(‘名称))

多线程连接池测试

年欧洲足球锦标赛

汇入执行绪

汇入redis

def redis_pool_test():

#年#月#日吕惠卿(签名)(不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,魏冄逾时哈哈哈,范思哲范思哲。)

# pool=redis .blockgcconnectionpool(主机=’ localhost ‘,端口=6379,db=1,max_connections=2,超时=5)

#年#月#日范思哲,范思哲

pool=redis .ConnectionPool(主机=’localhost ‘,端口=6379,db=1,max_connections=2,超时=5)

redis_client=redis .连线集区=集区

线程1=redxexthread(redis _ client)

线程2=redxexthread(redis _ client)

线程3=redxexthread(redis _ client)

线程4=redxexthread(redis _ client)

线程5=redxexthread(redis _ client)

线程6=redxexthread(redis _ client)

线程7=redxexthread(redis _ client

)
thread8 = RedaisExexThread(redis_client)
thread9 = RedaisExexThread(redis_client)
thread10 = RedaisExexThread(redis_client)
thread1.start()
thread2.start()
thread3.start()
thread4.start()
thread5.start()
thread6.start()
thread7.start()
thread8.start()
thread9.start()
thread10.start()
# 使用普通连接池的时候,连接数不够会直接报错
# 使用阻塞连接池的时候,如果连接数不够,会等待,等待时间在设定的超时时间之后,才会舍弃,
# 在实际应用的时候,可以把线程池和超时时间设置的稍微大一些

redis 单例模式作为全局配置连接使用

创建redisPool.py文件

# !/usr/bin/env python3
# -*- coding: utf-8 -*-
import redis
RedisConfig = dict(host='127.0.0.1', port=6379, db=1, decode_responses=True, max_connections=10, timeout=5)
class RedisCache:
    _instance = None
    def __new__(cls, *args, **kwargs):
        if cls._instance is None:
            cls._instance = object.__new__(cls)
        return cls._instance
    _redis_pool_data = redis.BlockingConnectionPool(**RedisConfig)
    # 以管道方式运行redis
    @classmethod
    def get_pipe(cls):
        conn = cls.get_conn()
        return conn.pipeline(transaction=True)
    # 实例化redis
    @classmethod
    def get_conn(cls):
        conn = redis.StrictRedis(connection_pool=cls._redis_pool_data)
        return conn

创建调用主文件

import redisPool
import threading
def redis_clientt():
    redis_client = redisPool.RedisCache.get_conn()
    thread1 = RedaisExexThread(redis_client)
    thread2 = RedaisExexThread(redis_client)
    thread3 = RedaisExexThread(redis_client)
    thread4 = RedaisExexThread(redis_client)
    thread5 = RedaisExexThread(redis_client)
    thread6 = RedaisExexThread(redis_client)
    thread7 = RedaisExexThread(redis_client)
    thread8 = RedaisExexThread(redis_client)
    thread9 = RedaisExexThread(redis_client)
    thread10 = RedaisExexThread(redis_client)
    thread1.start()
    thread2.start()
    thread3.start()
    thread4.start()
    thread5.start()
    thread6.start()
    thread7.start()
    thread8.start()
    thread9.start()
    thread10.start()

redis pip 管道批量提交和普通set参数的区别

def redis_client_set_pip(ss):
    redis_clientt = redisPool.RedisCache.get_pipe()
    for i in range(1, 100000):
        redis_clientt.sadd(ss + str(i), i)
    redis_clientt.execute()
    print(time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime()))
    # 添加10000个key-value  使用管道和不使用管道的区别
def redis_client_set(ss):
    redis_clientt = redisPool.RedisCache.get_conn()
    for i in range(1, 100000):
        redis_clientt.set(ss + str(i), i)
    # redis_clientt.execute()
    print(time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime()))
    # 添加10000个key-value  使用管道和不使用管道的区别
if __name__ == '__main__':
    print(time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime()))
    t1 = threading.Thread(target=redis_client_set_pip, args=['no_pipe1:'])
    t2 = threading.Thread(target=redis_client_set_pip, args=['no_pipe2:'])
    t3 = threading.Thread(target=redis_client_set_pip, args=['no_pipe3:'])
    t1.start()
    t2.start()
    t3.start()
    print(time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime()))

同样是创建相同的数据pip方式比普通一个一个set的方式要提高好多倍

惜秦皇汉武,略输文采;唐宗宋祖,稍逊风骚。
一代天骄,成吉思汗,只识弯弓射大雕。
俱往矣,数风流人物,还看今朝

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/130333.html

(0)

相关推荐

  • Puppeteer怎么启动交互模式

    技术Puppeteer怎么启动交互模式这篇文章主要讲解了“Puppeteer怎么启动交互模式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Puppeteer怎么启动交互模

    攻略 2021年10月21日
  • 交朋友英语,关于如何交朋友的英语作文

    技术交朋友英语,关于如何交朋友的英语作文Everyone needs friends. A friend can give us help and share our difficulties and happines

    生活 2021年10月21日
  • python中如何使用GPU大幅提高效率

    技术python中如何使用GPU大幅提高效率本篇文章给大家分享的是有关python中如何使用GPU大幅提高效率,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

    攻略 2021年11月9日
  • c++ string类

    技术c++ string类 c++ string类string类
    将StrVec类的一些变量进行全局替换就能得到String类
    1、string替换为char
    2、str替换为c,strs替换为c
    3、

    礼包 2021年12月3日
  • 如何探讨Java代理模式与反射机制的实际应用

    技术如何探讨Java代理模式与反射机制的实际应用如何探讨Java代理模式与反射机制的实际应用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java提供了一套

    攻略 2021年11月21日
  • 怎么用ps换背景颜色,PS如何抠图替换背景色

    技术怎么用ps换背景颜色,PS如何抠图替换背景色1怎么用ps换背景颜色、打开要用ps进行抠图和换背景的图片,直接使用快捷键Ctrl+O打开,或在【文件】中选择【打开】,找到相应的素材点击即可,如下图所示:2、图片打开后,

    生活 2021年10月19日