解锁Spring Data Redis的正确使用姿势
Redis 是一个开源的使用 ANSIC 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从2010年3月15日起,Redis 的开发工作由 VMware 主持,从2013年5月开始,Redis 的开发由 Pivotal 赞助。
Redis 是一个开源(BSD 许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如:
字符串(Strings)
散列(Hashes)
列表(Lists)
集合(Sets)
有序集合(Sorted Sets)
范围查询、Bitmaps、Hyperloglogs 和 地理空间(Geospatial)索引半径查询
Redis 内置了复制(Replication)、LUA 脚本(Lua scripting)、LRU 驱动事件(LRU Eviction)、事务(Transactions)和不同级别的磁盘持久化(Persistence),并通过 Redis 哨兵(Sentinel)和自动分区(Cluster)提供高可用性(High Availability)。
现状:随着微服务架构、去中心化、高可用的环境要求,Redis 还会更加火爆。Redis 能帮我们解决很多分布式过程中的一些问题(如内存数据、分布式锁、共享数据等),围绕着 Redis 的开源的产品也越来越丰富。我们作为开发 Java 人员,已经成为了必备的开发技能,如同数据库一样,详见官方地址:http://redis.io/ 和 中文社区:http://www.redis.cn/。
01
Redis、Memcache 的比较
Memcached 和 Redis 都是内存数据库,都可以解决内存数据缓存的问题,但是两者比较,应用场景和便捷性、生态还是差别很大的。相同点都可以通过客户端一致性 Hash 算法解决切片问题。就是便利程度和稳定性可能会有差别,如下:
之前面试的时候,如果是架构师,他们会经常被问到为什么要使用 Redis?不用不行吗?Redis 的优点是帮我们实现了很多内存数据的东西,否则我们重头来写也是可以的,只是有点重复造轮子,人家开源也成熟。
Memcached 更是小项目、小应用场景、快速响应式团队,从高可用角度来说 Redis 还是胜出的。
02
Redis 的市场上 Client 实现方式
Redis 的客户端有个各种语言的实现版本,就 Java 而言常用的实现版本有:
03
Redis 的 Server 端的安装体验
而其中:Jedis 是目前最受欢迎的 Client,而 Spring Data JPA 又基于 Jedis 做了很好的封装。本专题作者就带领大家一起来领略 Spring Data JPA 的魅力所在。
安装
我们以 Redis-4.0.6 为例,先从官方下载,解压安装即可。命令如下:
$ wget http://download.redis.io/releases/redis-4.0.6.tar.gz $ tar xzf redis-4.0.6.tar.gz $
cd
redis-4.0.6 $ make $pwd
/Users/jack/company/www/redis-4.0.6启动 Server 端
如果上面的安装成功之后,我们只需要进入 Redis 的安装目录:/Users/jack/company/www/redis-4.0.6,执行如下命令,即可启动 Redis 的 Server 端。
$ src/redis-server
利用自带客户端测试一下
官方提供的 Redis-4.0.6 包里面包含了 Server 端和 Client 端。我们通过同目录的下面这个命令脚本,即可启动客户端,操作如下:
$ src/redis-cli redis>
set
foo bar OK redis>get
foo"bar"
到目前为止安装 Server 成功。
04
Server 端的安装需要掌握的东西
单机安装模式
master/salve 方式
Redis Sentinel 方式
切片模式安装模式
05
工作需要注意的事项
去中心化
Redis 本身服务的高可用、高并发行
数据的安全性、分布式储存、数据的一致性
实现方式的选型
Redis 的一些原理和概念要理解清楚
作者简介
张振华,曾经先后在驴妈妈、携程、要买车公司担任过 Java 高级工程师、架构师、开发主管、技术经理等职务。在电商公司工作期间,负责过 PC 站和后端服务的平台架构的实现和升级。目前在做一些 Java 架构工作。前后从业十几年没有离开 Java 开发,2015年出版《Java 并发编程从入门到精通》图书,计划在2018年出版《Spring Data JPA 从入门到精通》一书。
阅读全文
想要阅读全文,获取更多内容,
请扫描下方二维码:
- 活动 | Qlik Sense Workshop&Data Literacy回顾
- 超详细!解锁智能投影被过度“误会”的亮度和分辨率
- 六条路线带你解锁不一样的清华 | 清华映像
- 跳一跳加入皮肤功能,你能解锁吗?
- 从 Spring Cloud 看一个微服务框架的「五脏六腑」
- 给你五句话 解锁李盈莹
- 你手机里的隐藏功能,被解锁了!
- 【农技知识】红富士苹果果实偏斜的原因与预防
- Spring 框架和 Tomcat 容器扩展接口揭秘
- 【物理科普】指纹解锁是什么原理?看完豁然开朗!