Redis 是一个开源(BSD 许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如:
Redis 内置了复制(Replication)、LUA 脚本(Lua scripting)、LRU 驱动事件(LRU Eviction)、事务(Transactions)和不同级别的磁盘持久化(Persistence),并通过 Redis 哨兵(Sentinel)和自动分区(Cluster)提供高可用性(High Availability)。
现状:随着微服务架构、去中心化、高可用的环境要求,Redis 还会更加火爆。Redis 能帮我们解决很多分布式过程中的一些问题(如内存数据、分布式锁、共享数据等),围绕着 Redis 的开源的产品也越来越丰富。我们作为开发 Java 人员,已经成为了必备的开发技能,如同数据库一样,详见官方地址:https://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
如果上面的安装成功之后,我们只需要进入 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 端的安装需要掌握的东西
05
工作需要注意的事项