Redis
1.1 NoSQL概述
概念: Not Only SQL 不仅仅是SQL, 泛指非关系型数据库
分类:
关系型数据库:
特点:
1. 数据保存在硬盘中
2. 表和表之间存在一定关系
常见数据库:
MySQL
Oracle
非关系型数据库:
特点:
1. 数据保存在内存中
2. 数据不存在任何关系
常见数据库:
redis ★
mongoDB
应用:
1. 缓存 ★★★★★
2. 任务队列(秒杀、买票)
3. 排行榜
1.2 Redis 的数据类型
redis是key:value, 键值对存储数据.
注意: 【键】是字符串类型, 【值】的类型有5种.
Jedis工具类
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.io.InputStream;
import java.util.Properties;
/**
* Jedis工具类
*/
public class JedisUtils {
private static JedisPool pool; // 连接池
private static Integer maxTotal; // 最大连接数
private static Integer maxIdle;// 最大空闲数
private static String host; // redis 数据库ip
private static Integer port; // redis 端口
static {
try {
//静态代码块: 随着类的加载而加载
//1. 读取配置文件
InputStream in = JedisUtils.class.getClassLoader().getResourceAsStream("jedis.properties");
Properties prop = new Properties();
prop.load(in);
//读取配置信息
maxTotal = Integer.parseInt(prop.getProperty("maxTotal"));
maxIdle = Integer.parseInt(prop.getProperty("maxIdle"));
port = Integer.parseInt(prop.getProperty("port"));
host = prop.getProperty("host");
//2. 初始化JedisPoolConfig
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(maxTotal);
config.setMaxIdle(maxIdle);
//3. 初始化连接池
pool = new JedisPool(config, host, port);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取Jedis连接对象
* @return
*/
public static Jedis getJedis() {
return pool.getResource();
}
}
2. 总结
Redis
NoSQL
概念: 非关系型数据库
特点:
1. 数据保存在内存中
2. 数据之间不存在任何关系
作用:
互联网中的三高问题:
高并发
大数据
高扩展
Redis:
一种键值对类型的非关系型数据库
其中:
键: 字符串类型
值: 5种数据类型
数据结构:
String ★★★★★
set key value
get key
del key
hash
hset key filed value
hget key filed
hgetall key
hdel key filed
list
lpush / rpush
lrange start end
lrange 0 -1 -1: 最后一个
lpop rpop
set
sadd key value
smembers key
sortset 带分数 有序set集合
zadd key 分数 value
zadd ss 70 zhangsan 80 lisi
zrange start end
Redis 持久化 (了解)
RDB: 默认方式
每隔一段时间保存一次.
缺点: 数据容易丢失
优点: 服务器压力小
AOF:
实时记录用户操作
Jedis:
概念: Java 连接redis 的工具.
使用:
1. 导入jar包
2. 获取连接对象 Jedis
3. 执行操作.
4. 释放资源
连接池
JedisPool
手动封装了
JedisPoolUtils工具类