redis 数据库基础

redis 数据库基础


文章目录

<1> 简介

Redis 是一个高性能的 key-value 类型数据库, 属于 nosql 类型数据库, 与 mysql 等关系型数据库的储存方式不同.
nosql 数据库将数据存储于缓存之中, 关系型数据库将数据存储在硬盘中, 自然查询速度远不及nosql数据库.
nosql 的存储格式是 key, value 形式、文档形式、图片形式等多种类型, 而数据库则只支持基础类型.
但 nosql 数据库兴起时间较晚, 不如关系型数据库技术更加成熟.

redis for Linux 下载地址: http://www.redis.cn/download.html
redis for Windows 下载地址: https://github.com/MicrosoftArchive/redis/releases

注: 启动时先运行目录下的 redis-server, 再启动 redis-cli.

redis 教程: https://www.redis.net.cn/tutorial/3501.html

<2> redis 数据结构及基本操作语句

redis 存储的是 key(键)-value(值) 格式的数据, 其中 key 都是字符串, value 有 5 种不同的数据结构

(1) 字符串类型 string

1. 储存: set [key] [value]
2. 获取: get [key]
3. 删除: del [key]

(2) 哈希类型 hash

1. 储存: hset [key] [field] [value]
2. 获取: hget [key] [field] 获取指定field对应的值
        hgetall [key] 获取所有的field的value
3. 删除: del [key] [field] 删除指定的field及其对应的值
		del [key] 删除整个hash表

(3) 列表类型 list

1. 添加:
   从列表左侧添加: lpush [key] [value]
   从列表右侧添加: rpush [key] [value]
2. 获取([start,end]之间包括两端的元素): lrange [key] [start] [end]
   注: 从0到-1为列表内的所有元素
       首元素为0号元素
       
3. 删除: 
   从列表左侧删除: lpop [key]
   从列表右侧删除: rpop [key]

(4) 集合类型 set

set 是 string 类型的集合, 且每个元素唯一, 不允许重复, 元素之间无顺序

1. 储存: sadd [key] [value]
2. 获取: smembers [key] 获取set集合的所有元素
3. 删除: srem [key] [value] 删除set集合中指定元素

(5) 有序集合类型 sortedset

与 set 类似, 也不允许重复, 但 元素之间有顺序

1. 储存: zadd [key] [score] [value]
   [score]是储存元素的次序,从1开始,若原序号已存在,则自动向后排一位,不改变原位置的现有元素
2. 获取: zrange [key] [start] [end] 获取[start,end]之间的元素
3. 删除: zrem [key] [value]

(6) 其他常见命令

1. keys * : 查询所有的键
2. type [key] : 获取键对应的value的类型
3. del [key]:删除指定的key value

<3> 使用 Java 操作 redis — Jedis

Jedis 下载地址: https://search.maven.org/search?q=jedis
连接池下载地址: https://search.maven.org/search?q=commons-pool

(1) Java 语句

//1.获取连接
Jedis jedis =new Jedis();//使用空参构造时默认localhost,6379
//此处是内容
jedis.set("username","zhangan");
String username = jedis.get("username");
System.out.println(username);
jedis.setex("activecode",20,"hahe");//添加并20s后删除
//2.关闭连接
jedis.close();

(2) 连接池

JedisPoolConfig config = new JedisPoolConfig();
config.setMaxIdle(10);//最大空闲连接
config.setMaxTotal(50);//最大允许的连接数
JedisPool jedisPool = new JedisPool(config, "localhost", 6379);
Jedis jedis=jedisPool.getResource();
//此处写redis语句
jedis.close();//关闭

(3) 连接池工具类

public class JedisPoolUtils {
	private static JedisPool jedisPool;
	static{
		//读取配置文件
		InputStream is=JedisPoolUtils.class.getClassLoader().getResourceAsStream("jedis.properties");
		//创建Properties对象
		Properties pro =new Properties();
		try {
			pro.load(is);
		} catch (IOException e) {
			e.printStackTrace();
		}
		//获取数据,设置到jedispoolconfig中
		JedisPoolConfig config=new JedisPoolConfig();
		config.setMaxTotal(Integer.parseInt(pro.getProperty("maxTotal")));
		config.setMaxIdle(Integer.parseInt(pro.getProperty("maxIdel")));
		//初始化
		jedisPool=new JedisPool(config,pro.getProperty("host"),Integer.parseInt(pro.getProperty("port")));
	}
	
	public static Jedis getJedis(){
		return jedisPool.getResource();
	}
}

jedis.properties:

host=127.0.0.1
port=6379
maxTotal=50
maxIdle=10
上一篇:三、Jedis操作


下一篇:Redis