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)

相关推荐

  • CSS学习笔记:定位属性position

    技术CSS学习笔记:定位属性position CSS学习笔记:定位属性position目录一、定位属性简介二、各属性值的具体功能1. relative2. absolute3. fixed三、三种定位属

    礼包 2021年11月4日
  • mysql基础知识有哪些

    技术mysql基础知识有哪些本篇内容介绍了“mysql基础知识有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!第一章

    攻略 2021年11月18日
  • php+apache安装QQ微信网址域名防被封售卖系统源码怎么编写

    技术php+apache安装QQ微信网址域名防被封售卖系统源码怎么编写这篇文章将为大家详细讲解有关php+apache安装QQ微信网址域名防被封售卖系统源码怎么编写,文章内容质量较高,因此小编分享给大家做个参考,希望大家

    攻略 2021年10月23日
  • 如何理解PHP命令行选项解析库pflag

    技术如何理解PHP命令行选项解析库pflag这篇文章主要讲解了“如何理解PHP命令行选项解析库pflag”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解PHP命令行

    攻略 2021年10月21日
  • 英文mv100首

    技术英文mv100首 英文mv100首用Raysource下载 CD1(1-20):fs2you://Y2FjaGVmaWxlMTgucmF5ZmlsZS5jb20vemgtY24vZG93bmxvYW

    礼包 2021年11月19日
  • 春天有哪些花开,春夏秋冬各有哪些花开哟

    技术春天有哪些花开,春夏秋冬各有哪些花开哟一年四季各有什么花对应开放1、春天春天开花的种类有很多,比如:梅花、水仙、迎春、白玉兰、琼花、君子兰、牡丹、芍药、丁香、杜鹃、西洋杜鹃、樱花、含笑、玫瑰、紫荆、棣棠、锦带花、连翘

    生活 2021年10月20日