Redis 是一个使用 C 语言编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库。
Redis的特点
- 读写速度快:Redis 将数据存储在内存中,每秒钟支持大约8万次写操作和11万次读操作
- 数据类型丰富:Redis 提供了包括 String、List、Hash、Set、SortedSet五种类型
- 数据类型丰富指的是 value 的类型,其 key 只有 String 类型
- 数据切换方便:Redis 支持将数据复制到任意一台装有 Redis 数据库的服务器中
- 原子性:Redis 所有的操作都是原子性的,从而保证数据的完整性
安装Redis
需求
- 软件安装目录:
/export/servers
- 源码存放目录:
/export/software
- 日志文件目录:
/export/logs
- 数据存放目录:
/export/data
创建目录
1 | #创建目录 |
下载源码包
下载 Redis,解包后重命名。注意:这里的 redis-src
是用来编译安装的文件夹(源码)
1 | #software 目录存放源码包 |
安装编译环境
下载下来的只是 Redis 的源码包,需要对其进行编译,故需要安装C语言编译环境。
1 | #安装C语言编译环境 |
编译与安装
1 | cd /export/servers/redis-src/ |
准备配置文件
在指定的位置创建 Redis 的配置文件。
1 | #创建配置目录 |
配置文件的内容如下:
1 | #单节点Redis |
Redis 集群:
1 | #Redis集群 |
说明:
1 |
|
启动Redis
1 | #创建数据目录 |
查看是否正常启动 Redis 服务
1 | #查看是否正确启动 |
Redis 分为服务端和客户端,刚刚我们已经启动了 Redis 的服务端,接下来就可以使用客户端连接 Redis 了
使用客户端连接
1 | cd /export/servers/redis/ |
Jedis
Jedis 是一款用于操作 Redis 数据库的Java 客户端工具,提供了一套易于使用的 API。Jedis 其最大的特点就是其 API 和 Redis 的命令相同,大大降低了学习成本,其本身也被 Redis 官方推荐。
开源地址:xetorthio / jedis
快速入门
- 新建Maven项目,导入jedis和junit依赖。
1 | <dependency> |
- 创建测试类
1 |
|
常用API
String类型
使用 Redis 操作 String 类型数据。
- 特点:存储所有的字符和字符串
- 应用场景:做缓存使用
1 | public class StringTest { |
List类型
使用 Redis 操作 list 类型数据。
- 特点: 相当于 java 中linkList,是一个链表的结构
- 应用场景: 做任务队列,在 java 客户端中提供了线程安全获取集合数据的方式
1 | /** |
//TODO
Hash类型
哈希 hash
- 特点:相当于 java 中的 HashMap 集合
- 应用场景:可以存储 javaBean 对象,此种使用场景不多,可被String替代
1 |
Set类型
set 集合
- 特点: 唯一,无序
- 应用场景:集合运算,例如去重复的操作
1 |
SortedSet类型
有序set集合: sorted set
- 特点:唯一,有序
- 应用场景: 一般用来做排行榜
1 |
//TODO Redis集群