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)

相关推荐

  • 高锰酸钾制取氧气化学式,高锰酸钾制取氧气怎么念

    技术高锰酸钾制取氧气化学式,高锰酸钾制取氧气怎么念高锰酸钾制取氧气化学方程式高锰酸钾制取氧气化学式:
    2KMnO4
    加热==K2MnO4+MnO2+O2↑
    高锰酸钾制取氧气步骤:
    1,装配实验装置(试管内的导管稍伸出胶塞

    生活 2021年10月26日
  • 如何理解C++属性具体概念

    技术如何理解C++属性具体概念本篇文章给大家分享的是有关如何理解C++属性具体概念,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。C++编程语言中的属性是一个

    攻略 2021年10月27日
  • 转载:Promise输出题10道 加强理解

    技术转载:Promise输出题10道 加强理解 转载:Promise输出题10道 加强理解1.const promise = new Promise((resolve, reject) = {conso

    礼包 2021年10月20日
  • spring security csrf 认证控制(springboot如何关掉csrf)

    技术如何分析Spring对CSRF的防范这篇文章将为大家详细讲解有关如何分析Spring对CSRF的防范,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。什么是 CSRF跨站

    攻略 2021年12月16日
  • 公司仓库数据库服务器死锁过程及解决办法是什么

    技术公司仓库数据库服务器死锁过程及解决办法是什么这篇文章将为大家详细讲解有关公司仓库数据库服务器死锁过程及解决办法是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。死锁

    攻略 2021年12月2日
  • 21.Oracle权限详解

    技术21.Oracle权限详解 21.Oracle权限详解Oracle权限管理详解 Oracle 权限权限允许用户访问属于其它用户的对象或执行程序,ORACLE系统提供三种权限:Object 对象级、S

    礼包 2021年12月7日