Redis实现大表高效查询(大表查询 redis)
传统数据库实现大表查询时,这里指一个表中记录超过20w数据量,由于数据量过大,IO次数也会增加,降低查询的效率。而Redis的内存存储能力和多种数据类型以及操作,都能够有效支撑大数据量查询,并且拥有高性能的查询。具体实现方式如下:
**1、 将原有的数据进行Redis有效分割**
无论用一种存储方式,都要把原有的数据结构划分,分类别的存储。如把存储查询”name”这个关键字的所有数据放到一个”name” 键里,而不是对存储专卖之前的那种把所有数据放到一个表里。
// eg.
// 把查询”name”的数据放到一个”name”的键里 SET name "Mike"
**2、通过Hashing算法化简计算**
查询有一定的重复性,只要研究一次查询结构,就能保存计算结果,让后面的查询可以直接从缓存池中取出计算结果,这部分可以采用Hashing算法去计算。把算出来的Hashing结果,存储到一个HahsMap之中,那么,原有的那些查询条件,可以统一作为键,Hash结果作为值,存储到一个哈希表里,等到查询带来来查询时,先从这哈希里查找,然后根据查到的结果从原数据里取出数据。
**3、对常见查询结果采用缓存**
对常见的查询出现的结果采用Redis的缓存技术,缓存技术的实现很多,比较常用的是LRU和LFU,LRU是Least Recent Used算法,LFU是Least Frequently Used,意思就是把最近被访问的数据保存到缓存中,不断地更新,也可以采用LFU保存频繁访问的数据,这种缓存技术实际上可以简单理解为把不断变化的查询结果保存在内存中,下次就直接调用缓存中保存的结果,不用重新查询数据库,可以极大提升查询的效率:
// 以设定缓存来保存数据
SET myName "alex"// 设置Redis的缓存时间,指定缓存的过期时间
EXPIRE myName 10
// 设置有效的缓存SET myName "alex"
//设置hashHSET myName "name" "alex"
EXPIRE myName 10
Redis是一种性能高,可扩展性好的数据库,可以有效实现大表查询效率,实现方式主要是把原有的数据进行Redis有效分割,通过Hashing算法化简计算,以及对常见查询结果采用缓存的技术。Redis的优点在大表查询上不可替代,可以实现大表读取数据,提升查询效率。
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 Redis实现大表高效查询(大表查询 redis)
相关文章
- 【Redis 系列】redis 学习五,多学习一些 redis 的三种特殊数据类型
- 缓存实现Java中Redis缓存过期策略(redisjava过期)
- 处理Java实现Redis过期键管理(redisjava过期)
- Redis命令如何实现高效的串行操作?(redis命令串行)
- 中的实现Redis实现常用业务让生活更便捷(常用业务在redis)
- 监控调度Redis集群Key数据变更(监听redis集群key)
- 使用Redis快速实现验证码功能(用redis实现验证码)
- 爬虫利用Redis提高数据采集效率(爬虫使用redis)
- 实现Redis中数据的自动更新(数据怎么更新至redis)
- 使用Redis提速支付流程(支付用redis)
- wincc调用Redis读写数据实现无缝数据交互(wincc访问redis)
- 性分布式Redis实现读写均衡性的实践(分布式redis读写均匀)
- 消息Redis实现消息推送一种可靠机制(如何用redis推送)
- 如何实现轻量级Redis功能(如何实现简化版redis)
- 快速实现同步更新Redis缓存的技术实现(同步更新redis缓存)
- Redis集群架构探索实践之路(redis集群架构实践)
- 一步一步搭建稳健的Redis集群(redis集群搭建好了)
- Redis中数据删除的实现方式(redis里面的数据删除)
- 红色宝石用缓存获取更多精彩(redis都是缓存)
- 实现Redis在不同DB之间的连接(redis连接不同的db)
- 缩小部署仅用单台Redis集群实现高可用(redis集群单数台)
- 精通Redis编程语言,开启新的编程世界(redis编程语言)
- Redis中优雅的数据过期解决方案(redis过期场景)