Redis(缓存)
1、Redis 是什么?
Redis本质是一个Key_Value
类型的内存数据库
,整个数据库系统加载在内存当中进行操作,
定期通过异步操作把数据库数据使用Copy_on_write技术持久化到硬盘中保存。
2、Redis 有哪些应用场景?
缓存、数据共享分布式、分布式锁、全局 ID
、计数器、限流、位统计、购物车
、用户消息时间线 timeline、消息队列
、抽奖
、点赞、签到
、打卡
、商品标签、商品筛选、用户关注、推荐模型、排行榜.
3、Redis 有什么优势?
性能极高
– Redis能读的速度是110000次/s,写的速度是81000次/s 。丰富的数据类型
– Redis支持二进制案例的Strings, Lists, Hashes, Sets 及 Ordered Sets
数据类型操作。支持事务
,操作都是原子性
,所谓的原子性就是对数据的更改要么全部执行
,要么全部不执行
丰富的特性
–Redis还支持 publish/subscribe,
通知, key 过期等等特性。
4、Redis 为什么这么快?
(1)完全基于内存
,绝大部分请求是纯粹的内存操作
,非常快速。
(2)数据结构简单
,操作也简单,Redis 中的数据结构是专门进行设计的;
(3)采用单线程
,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU,不用去考虑各种锁的问题
(4)使用多路 I/O 复用模型,非阻塞 IO;
5、Redis 主要消耗什么物理资源?
内存
因为redis的数据都是存储在内存当中。内存数据库相比一般的关系型数据库,读取速度要更快,但是消耗的内存资源会更多。
6、Redis 到底是单线程还是多线程?
7、Redis 和 Memcache 有什么区别?
1,Redis支持数据的持久化,而Memcache不支持
Redis可以按照配置文件中约定的规则把数据写到硬盘上,即便服务器宕机了,重启服务器后可以把数据重新从硬盘加载入内存,保证了数据的不丢失,持久化。
Memcache没有这样的功能,数据完全存在于内存,服务器宕机,数据完全丢失。
所以可以把一些不重要,经常访问的数据放入Memcache,即使丢了影响也不大。
2,Reids支持多种数据类型
Redis支持String(字符串), List(列表), Hash(哈希), Set(无序集合) 及 Zset(有序集合) 等数据类型。
Memcache只有string类型的key和value
Redis和Memcache有什么区别
3,Redis支持主从集群
Redis支持主从集群,而Memcache也支持集群,但集群的能力很弱。
4,默认端口不同
Memcache默认端口:11211
redis的默认端口:6379
8、Redis 支持哪些数据类型?
Redis支持的数据类型主要有五种:string
(字符串),hash
(哈希),list
(列表),set
(集合)及zset(sorted set:有序集合
)。
9、Redis 默认支持多少个数据库?怎么修改?
Redis 默认支持 16 个数据库。
可以通过修改 Redis 配置文件 redis.conf 中的 databases 一值进行变更。
10、Redis 最大 key 大小?
1.Redis的key可以存储的最大值
虽然Key的大小上限为512M,但是一般建议key的大小不要超过1KB,这样既可以节约存储空间,又有利于Redis进行检索
注:1KB=1024B 1MB=1024KB 1GB =1024MB
2.Redis的value可以存储的最大值
value的最大值也是512M。对于String类型的value值上限为512M,而集合、链表、哈希等key类型,单个元素的value上限也为512M
11、Redis String 值最大存储多少?
Redis的String类型最大占用512M的空间。
12、Redis 事务有什么用?
Redis事务的本质是一组命令的集合
。事务支持一次执行多个命令
,一个事务中所有命令