# -*- coding: utf-8 -*-
# @Author: 风过无言花易落
# @Date  : 2021/05/28 18:00
# @Desc  : 操作redisimport os,sys
import time
import redis
import multiprocessing
import cx_Oraclepath = os.getcwd()
parent_path = os.path.dirname(path)
sys.path.append(parent_path+'\Data_DB')
path = os.getcwd()
parent_path = os.path.dirname(path)
sys.path.append(parent_path)pool = redis.ConnectionPool(host='10.111.150.91', port=19103, max_connections=100)
rs = redis.Redis(connection_pool=pool)
'''
@解释:
1、set(name, value, ex=None, px=None, nx=False, xx=False),ex,过期时间(s);
px,过期时间(ms);nx,如果设置为True,则只有name不存在时,当前set操作才执行,值存在,就修改不了,执行没效果;
xx,如果设置为True,则只有name存在时,当前set操作才执行,值存在才能修改,值不存在,不会设置新值
2、get(name) 返回数据库中key为name的string的value
3、set(name, value) 给name赋值为value
:return:
'''
def insert_to_redis(n):for a,b,c in n:# name = 'xxxxxxxxyzabcdefg1gxx' + str(n) + str(i)# rs.set(name, 'asdfwetrfetgsdfgdfhgyrdthfdhfdhnfdghfdhrdtyhtwertwertewrtgesrgdsfgsdfgdsfg')rs.hset(a,b,c)def get_redis(k):return rs.get(k)if __name__ == '__main__':# print('输入参数:insert 写redis,get 读redis')# xtype = sys.argv[1]xtype = 'get'data = [('aa','bb','111')]if xtype =='insert':pool_list = []for i in range(1):p = multiprocessing.Process(target=insert_to_redis, args=(data,))p.start()pool_list.append(p)for i in pool_list:i.join()if xtype == 'get':from clickhouse_driver import Clientfrom OraclePool import OraclePoolimport jsondef GetDatas_QueryDB(sql):connection = cx_Oracle.connect("bmode", "bmode", "10.111.150.91:1510/DB")try:cursor = connection.cursor()cursor.execute(sql)result = cursor.fetchall()cursor.close()return resultexcept Exception as e:print(e)finally:connection.close()def clickhouse(sql):client = Client(host='10.111.150.92', port='29012', database='iottest', user='test',password='z4_QeAP')ans = client.execute(sql)return anssql1 = ''' select count(1) from stg_gsm_lot_day '''data = GetDatas_QueryDB(sql1)end = 1for i in range(0, data[0][0], 1000):end += 1000sql = '''select * from (select rownum no, lac,ci,district_name from stg_gsm_lot_day where (lac is not null or  ci is not null)  and  rownum < {end}) where no >{start} '''.format(start=i, end=end)print(i,end)# print(sql)data1 = GetDatas_QueryDB(sql)# print(data1)for no,lac,ci,district_name in data1:# data_key = 'KEY_2G_'+lac+'_'+cidata_key = 'KEY_2G_38608_387'redis_date = json.loads(get_redis(data_key).decode('UTF-8'))print(redis_date)exit()if district_name == None:if redis_date['district_name'] == '':passelif district_name == redis_date['district_name']:passelse:print(data_key,district_name,redis_date,lac,ci)

读Redis对比数据库数据进行稽核相关推荐

  1. 如何保证redis和数据库数据的一致性

    首先能放在缓存中的数据,应该是即时性和数据一致性要求不高或者访问量大但是更新频率不高的数据.所以一般只需要保证redis和数据库数据的最终一致性即可,此时只需要在数据存入缓存的时候加上失效时间,这样到 ...

  2. Redis和数据库 数据同步问题

    Redis和数据库同步问题 缓存充当数据库 比如说Session这种访问非常频繁的数据,就适合采用这种方案:当然了,既然没有涉及到数据库,那么也就不会存在一致性问题: 缓存充当数据库热点缓存 读操作 ...

  3. Redis和mysql数据怎么保持数据一致的?

    需求起因 在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节.所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库. 这个业务场景,主要 ...

  4. 使用Redis进行数据库缓存

    当我们网站的数据量过大时,使用Java频繁访问数据库会造成延迟过大.数据丢失等问题,这时候就需要使用缓存技术将经常访问的数据保存在缓存数据库以减少数据库访问.我们经常使用Redis作为缓存数据库. 当 ...

  5. Memcache,Redis,MongoDB(数据缓存系统)方案对比与分析

    一.问题:     数据库表数据量极大(千万条),要求让服务器更加快速地响应用户的需求. 二.解决方案:      1.通过高速服务器Cache缓存数据库数据      2.内存数据库   (这里仅从 ...

  6. redis和mysql数据不一致_高并发下为什么 redis 和数据库不一致?怎么解决?

    现在的web架构一般都用redis作为缓存层来减轻数据库的压力,数据在此架构下的读取问题,一般都是先判断redis缓存是否有数据,如果有,直接返回,否则读取数据库的数据,写入redis,返回数据,这是 ...

  7. 数据库数据 与 excel 对比。(项目一)

    0.python 与 mysql 连接(增删改查) python 与 mysql 连接(增删改查)_Jack_2085的博客-CSDN博客1.查询数据库的某一张表#!/usr/bin/python# ...

  8. SpringBoot中通过自定义缓存注解(AOP切面拦截)实现数据库数据缓存到Redis

    场景 若依前后端分离版本地搭建开发环境并运行项目的教程: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662 基于上 ...

  9. [转载] python怎么获取redis中的数据_python操作redis数据库

    参考链接: 使用Python在Selenium中进行非阻塞等待 3.redis基本命令 String set(name, value, ex=None, px=None, nx=False, xx=F ...

最新文章

  1. weblogic查看内存情况
  2. Sicily-1063
  3. accept标头 php,解决PHP中缺少“授权”请求标头的问题
  4. 广东中国科学院计算机网络信息中心,中国科学院
  5. 计算机辅助设计cad综述,控制系统计算机辅助设计综述
  6. 基于axis2的webservice和android简单的本地数据交互(下)
  7. net-java-php-python-新华眼镜ERP系统计算机毕业设计程序
  8. 单播、广播和多播IP地址
  9. 【2020 ACM Fellow 华人学者】 Cathy H. Wu 特拉华大学
  10. 命名时取代基优先顺序_烷烃的系统命名
  11. CSS复合选择器、元素显示模式、背景
  12. Kahan's Summation Formula原理—它是如何处理大数吃小数的
  13. leetcode报错:member access within null pointer of type struct ListNode
  14. 计算机教室防辐射方案,办公室电脑族如何防辐射 内调外养轻松应对
  15. MyBatisPlus中条件构造器中or和orNew的区别
  16. 使用高德地图加在kml文件
  17. Android:剖析源码,随心所欲控制Toast显示
  18. 电快速瞬变脉冲群实验(内部电源设备)
  19. W3School20道题 测试你的HTML技能
  20. ProCast导出节点应力数据并格式化

热门文章

  1. 超链接点击页面不调转
  2. 数值分析-多项式插值方法小结
  3. 华硕笔记本电脑怎么恢复出厂设置,华硕恢复出厂设置教程
  4. Changes to be committed: (use “git restore --staged <file>...“ to unstage)
  5. 华为项目管理的精髓干货!可收藏
  6. win7打不开计算机网络连接,win7打不开本地连接一直转圈的解决方法
  7. HTTPS之TLS证书
  8. ECharts - 14.小例子:实现日历图
  9. 月入3k和月入3w的女生有什么区别?
  10. Scrum Master Mock Test (1)