Redis学习笔记(一)

介绍

Redis(Remote Dictionary Server)是一个开源的、基于内存运行的数据结构存储系统,可以用作数据库、缓存和消息传递中间件。

数据类型

类型说明
String字符串
Map哈希(键值对)
List列表(双向链表)
Sets集合
Sorted Sets有序集合

使用规范

键格式:表名:主键名:主键值:字段名

使用场景

  1. 对于只需要查看的对象数据可以存为JSON字符串

  2. 对于需要修改的对象数据可以存为Map类型

  3. 需要交并差运算的集合使用集合类型

  4. List数据类型可以实现各种数据结构(栈、队列……)

  5. 对于有权重的任务管理可以使用Sorted Sets

Key操作

  1. 可查看某个key是否存在
  2. 可查看key下的值为什么类型
  3. 可设置key的失效时间

DB操作

  1. 一共有16个库(0-15)
  2. 可切换库
  3. 可清空某个库(慎用)
  4. 可清空所有库(慎用)

工具

Jedis

一个能够操作Redis的Java第三方包,方法名跟Redis指令是对应的,maven坐标如下:

1
2
3
4
5
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>

简单使用:

1
2
3
4
5
6
7
// 建立连接
Jedis jedis = new Jedis("localhost", 6379);
// 操作Redis
jedis.set("foo", "bar");
System.out.println(jedis.get("foo"));
// 断开连接
jedis.close();

连接池使用:

1
2
3
4
5
6
7
8
9
10
11
// 创建连接池配置
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(30); // 最大连接数
jedisPoolConfig.setMaxIdle(10); // 最大活动连接数
// 创建连接池
JedisPool jedisPool = new JedisPool(jedisPoolConfig, "localhost", 6379);
// 获取连接
Jedis jedis = jedisPool.getResource();
// 操作Redis
jedis.set("name", "InsectMk");
System.out.println(jedis.get("name"));

RedisDesktopManager

RedisDesktopManager,一个Redis可视化客户端。

高级应用

  1. 启动时可指定端口号、配置文件等
  2. 配置文件可设置日志输入路径

持久化

在Redis数据库中,有RDB(Redis Database File)和AOF(Append Only File)两种不同的持久化机制,用于在数据库崩溃或重启时保存和恢复数据。

RDB

保存所有的数据,占用时间长

  1. save:立即执行
  2. bgsave:异步执行

AOF

保存数据的操作

参考文章

黑马程序员Redis入门到精通,深入剖析Redis缓存技术,Java企业级解决方案redis教程

Redis中文教程