非关系型数据库Redis

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工具类

你可能感兴趣的:(redis)