Java-Redis

1.简单介绍一下Redis

Redis是一个使用C语言开发的数据库,不过与传统的数据库不同的是Reids的数据库是存在内存中的,也就是它是内存数据库,所以读写速度非常快,因此Redis被广泛应用于缓存方向。

Redis除了做缓存之外,Redis也经常用来做分布式锁,甚至是消息队列。

Redis提供了多种数据类型来支持不同的业务场景。Redis还支持事务、持久化、Lua脚本、多种集群方案

优点

  • 读写性能极高
  • 支持数据持久化
  • 支持事务
  • 数据结构丰富
  • 支持主从复制
  • 丰富的特性

缺点

  • 数据库容量收到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。
  • 主机宕机,宕机前有部分数据未能及时同步到从机,切换IP后还会引入数据不一致的问题,降低了系统的可用性。

2.缓存数据的处理流程

  1. 如果用户请求的数据在缓存中就直接返回
  2. 缓存中不存在的话就看数据中是否存在
  3. 数据库中不存在的话就更新缓存中的数据
  4. 数据库中不存在的话就返回空数据。

3.Rsdis常见的数据库

A.字符串类型 String

String数据结构是简单的key-value类型,可以存储任何类型的数据,包括二进制数据,序列化后的数据,JSON化后的数据,甚至是一张图片。最大为512M

常用命令:set、get、strlen、exists、dect、incr、setex

应用场景:计数器:记录播放量,记录访问数(Redis记总数,MySQL记录日志)、登录验证码

B.列表类型 list

是简单的字符串列表,按照插入顺序排序,元素可以重复。可以添加一个元素到列表的头部或者尾部,底层是个链表结构。实现的是双向链表,既可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销。

 常用命令:rpush、lpop、lpush、rpop、lrange、llen

应用场景:消息队列,慢查询

C. 集合类型 set

是String类型的无序无重复集合 

Java-Redis_第1张图片

你可能感兴趣的:(java,redis,数据库)