简单介绍一下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持久化的实现方式?各自的优缺点是什么?
缓存穿透?
缓存击穿?
缓存雪崩?