目录
①定义键值的前缀,我们前面定义的string类型的我们要保证键值的唯一性,我们选择用food+id 保证键值的唯一性,并且在数据库中我们好识别②查询的方法
一、认识一下Redis数据库
Redis全称是REmote DIctionary Server
Redis是一个开源的使用ANSI C语言编写(这也是为什么make的时候要下c语言支持)、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
(节选官方中文文档)
Redis能够如此热门是有它的特点的:
-
性能极高,基于内存,读的速度是110000次/s,写的速度是81000次/s
-
丰富的数据类型,支持string、hash、list、set及zset多种数据类型
-
原子性,Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行
-
丰富的特性,支持publish/subscribe, 通知, key 过期等等特性
-
支持持久化,可以将内存中的数据保存在磁盘中,重启后再次加载
-
支持分布式,理论上可以无限扩展
-
单线程,没有线程并发问题,Redis5.0后支持多线程
-
Redis运行在内存中但是可以持久化到磁盘
-
Redis有着更为复杂的数据结构并且提供对他们的原子性操作
-
Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象
二、Redis数据库的安装与配置
Navicat Premium 16.2.5 连接 redis 7.0.12_qq_15145603的博客-优快云博客
在这片文章中我有详细写到,大家可以看看
三、在Java中的使用
在配置完成之后我们可以先来简单的读写来测试
我们基于maven来测试
我们首先新建一个普通的maven项目
1.首先在pom.xml文件中加入依赖
(不加版本号就是根据你的版本选择兼容的,一些差异大的依赖建议明确版本)
<!--redis数据库连接包-->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
然后构造项目 (就是下载依赖)
2.构建好软件包根目录,写好测试类

然后创建redis目录,编写RedisTest类,测试能否连接
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisShardInfo;
public class RedisTest {
public static void main(String[] args) {
// 第一个参数是 主机地址 第二个是端口 本地地址就127.0.0.1 服务器填公网地址 虚拟机是自己设置的
// redis默认端口号就是6379 可以去我提到的配置redis的文章里面看看
Jedis jedis = new Jedis("主机", 6379);
jedis.auth("密码"); //你自己设置的密码,如果没有密码,则不需要当前那行
System.out.println("连接成功"+jedis.ping());
}
}
接下来进行读写的测试
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisShardInfo;
public class RedisTest2 {
public static void main(String[] args) {
//参数:(服务器地址 : 端口号 / 仓库)
//主机还是和上面的一样 端口号一致 仓库redis 一般是 0 1 2 3 这样的
JedisShardInfo shardInfo = new JedisShardInfo("redis://主机:6379/0");
shardInfo.setPassword("你的密码");//这里是密码
// 连接redis数据库
Jedis jedis = new Jedis(sh