一.Redis常见应用场景

1.缓存:合理地使用缓存不仅可以加快数据的访问速度,而且能够有效地降低后端数据源的压力。

2.共享Session :系统有些功能依赖session,,如果需要单击变为集群,可以选择redis来统一管理。

3.消息队列系统:消息队列系统大型网站必备组件,因其具有异步,解耦,削峰等特性。Redis提供了发布订阅功能和阻塞队列的功能,。虽然和专业的消息队列比还不够强,对于一般的消息队列功能基本可以满足,比如份试爬虫系统中,使用redis来统一管理url队列。

4.分布式锁:在分布式服务中,可以利用Redis的setx功能来编写分布式锁,例如:点赞,排行榜都可以使用Redis实现,但是当数据量特别大时,不适合Redis。Redis是基于内存的,如果每天的数据量特别大,用Redis来存储,成本很高。

二.Redis与Memcached的区别

1.性能差异:单核小数据量存储Redis比Memcached快,大数据存储Redis略差。

2. 数据结构差异:Redis支持5种数据结构,Memcached只支持字符串。

3. 安全性差异: memcache挂掉后,数据没了(没有持久化机制),数据不可恢复;;redis数据丢失后可以通过RBD或AOF恢复,redis可以定期保存到磁盘(持久化)。

线程模型:Redis使用单线程模型,基于非阻塞的IO多路复用机制,无线程切换;Memcache

使用多线程模型,一个master线程,多个work线程。

5.集群模式:Redis支持原生cluster模式,Memcache没有原生的集群模式.

三.Redis常见数据结构

1.String字符串:最基础常见,常用在缓存,共享Session。

2.Hash哈希: 哈希类型是指键值本身又是一个键值对结构。

3.List列表:常用来存储多个有序的字符串,可以做简单的消息队列功能,还可以利用lrange命令,做基于Redis的分页功能,性能极佳,用户体验好。

4.Set 可以保存多个字符串,集合冲不允许重复,集合中元素无序,不能通过索引下标获取

5.Sorted Set 有序集合:Socored  Set 多了一个权重参数Score,集合中的元素能够按Score进行排列,可以做排行榜应用。

四.Redis持久化机制

Redis可通过RDB和AOF实现持久化。

RDB: 指定的时间间隔能对数据进行快照存储。 例如每隔10s,100s。

AOF:每一个收到的写命令都通过write函数追加到文件中。

五.Redis事务

Redis通过MULTI、EXEC、WATCH等命令来实现事务功能,,在传统数据库中,常常用ACID(原子性,一致性,隔离性,持久性)性质来检验事务功能的可靠性和安全性,在redis 也具有原子性,一致性,隔离性,并且当redis 运行在某种特定的持久化模式下时,事务也具有持久性。

六.主从复制

七.什么是Jedis? 什么是Redisson? 两者有什么区别?

jedis:提供了比较全面的 Redis 命令的支持,它是java和redis打交道的API客户端。

Redisson:实现了分布式和可扩展的 Java 数据结构,与 jedis 相比 Redisson 的功能相对简单,不支持排序、事务、管道、分区等 Redis 特性。