Redis

Redis基础知识


 简单介绍一下Redis,以及为什么要用Redis做缓存?为什么要用缓存?

  Redis是一个使用C语言编写的非关系型数据库,与传统数据库不同的是,Redis的数据是存放在内存中的。由于数据存放在内存中,所以Redis对数据的读写非常的快。因此Redis被广泛应用于缓存方向,它每秒可以处理10万次的读写操作,是已知性能最快的Key-Value DB。另外Redis也经常被用来做分布式锁,甚至是消息队列。除此之外,Redis还提供了多种数据类型来支持不同的业务场景,并且它还支持事务持久化Lua脚本,多种集群方案。

使用Redis做缓存主要有以下两个方面的考虑:高性能、高并发。

  高性能:用户第一次访问数据库中的某些数据,这个过程会比较慢,因为是从硬盘上读取的,如果将数据放入缓存,下一次要读取这些数据的时候,直接从缓存中读取即可,操作内存的速度比硬盘是更快的,因此我们通常将不经常改变的数据放入缓存,用户要读取这些数据的时候,直接从缓存中读取,当数据库中的数据改变之后,同步改变缓存中的相应数据即可,这样能大大提高系统性能。

  高并发:在高并发场景下,往往会同时出现大量的请求打在数据库上,但是数据库能够承受的请求量是远远低于缓存的,因此可以考虑把数据库中的部分热点数据转移到缓存中去。


Redis和Memcached的区别

  Redis是一个使用C语言编写的非关系型数据库,与传统数据库不同的是,Redis的数据是存放在内存中的。由于数据存放在内存中,所以Redis对数据的读写非常的快。因此Redis被广泛应用于缓存方向,它每秒可以处理10万次的读写操作,是已知性能最快的Key-Value DB。另外Redis也经常被用来做分布式锁,甚至是消息队列。除此之外,Redis还提供了多种数据类型来支持不同的业务场景,并且它还支持事务持久化Lua脚本,多种集群方案。

使用Redis做缓存主要有以下两个方面的考虑:高性能、高并发。

  高性能:用户第一次访问数据库中的某些数据,这个过程会比较慢,因为是从硬盘上读取的,如果将数据放入缓存,下一次要读取这些数据的时候,直接从缓存中读取即可,操作内存的速度比硬盘是更快的,因此我们通常将不经常改变的数据放入缓存,用户要读取这些数据的时候,直接从缓存中读取,当数据库中的数据改变之后,同步改变缓存中的相应数据即可,这样能大大提高系统性能。

  高并发:在高并发场景下,往往会同时出现大量的请求打在数据库上,但是数据库能够承受的请求量是远远低于缓存的,因此可以考虑把数据库中的部分热点数据转移到缓存中去。


缓存数据的处理流程?

  Redis是一个使用C语言编写的非关系型数据库,与传统数据库不同的是,Redis的数据是存放在内存中的。由于数据存放在内存中,所以Redis对数据的读写非常的快。因此Redis被广泛应用于缓存方向,它每秒可以处理10万次的读写操作,是已知性能最快的Key-Value DB。另外Redis也经常被用来做分布式锁,甚至是消息队列。除此之外,Redis还提供了多种数据类型来支持不同的业务场景,并且它还支持事务持久化Lua脚本,多种集群方案。

使用Redis做缓存主要有以下两个方面的考虑:高性能、高并发。

  高性能:用户第一次访问数据库中的某些数据,这个过程会比较慢,因为是从硬盘上读取的,如果将数据放入缓存,下一次要读取这些数据的时候,直接从缓存中读取即可,操作内存的速度比硬盘是更快的,因此我们通常将不经常改变的数据放入缓存,用户要读取这些数据的时候,直接从缓存中读取,当数据库中的数据改变之后,同步改变缓存中的相应数据即可,这样能大大提高系统性能。

  高并发:在高并发场景下,往往会同时出现大量的请求打在数据库上,但是数据库能够承受的请求量是远远低于缓存的,因此可以考虑把数据库中的部分热点数据转移到缓存中去。


Redis为什么这么快?为什么Redis是单线程模型,为什么不采用多线程?Redis6.0之后为何又引入了多线程?

  Redis是一个使用C语言编写的非关系型数据库,与传统数据库不同的是,Redis的数据是存放在内存中的。由于数据存放在内存中,所以Redis对数据的读写非常的快。因此Redis被广泛应用于缓存方向,它每秒可以处理10万次的读写操作,是已知性能最快的Key-Value DB。另外Redis也经常被用来做分布式锁,甚至是消息队列。除此之外,Redis还提供了多种数据类型来支持不同的业务场景,并且它还支持事务持久化Lua脚本,多种集群方案。

使用Redis做缓存主要有以下两个方面的考虑:高性能、高并发。

  高性能:用户第一次访问数据库中的某些数据,这个过程会比较慢,因为是从硬盘上读取的,如果将数据放入缓存,下一次要读取这些数据的时候,直接从缓存中读取即可,操作内存的速度比硬盘是更快的,因此我们通常将不经常改变的数据放入缓存,用户要读取这些数据的时候,直接从缓存中读取,当数据库中的数据改变之后,同步改变缓存中的相应数据即可,这样能大大提高系统性能。

  高并发:在高并发场景下,往往会同时出现大量的请求打在数据库上,但是数据库能够承受的请求量是远远低于缓存的,因此可以考虑把数据库中的部分热点数据转移到缓存中去。


 IO多路复用是什么?

  

 


 Redis数据结构以及应用场景

 

 

 

 


Redis缓存过期和内存淘汰

Redis给缓存设置过期时间有啥用?

 


如何判断缓存数据是否过期?

 


过期数据的删除策略了解么?

 


Redis内存淘汰机制?

 

 


Redis持久化

什么是Redis持久化?

 


 Redis持久化的实现方式?各自的优缺点是什么?

 

 


 Redis主从架构

 

 

 


Redis缓存存在的问题

缓存穿透?

 

缓存击穿?

 

缓存雪崩?

 

Redis

上一篇:Android应用开发基础--Adapter


下一篇:Android 初始化语言 --init.rc