noSQL 数据库学习笔记
一、Nosql 数据库
常用的 NoSQL 有 redis,mogoDB 等等,这次以 redis 为学习
所有内容学习参考 菜鸟教程
1.1 特点
- 优势:快速查询,常常用来作为缓存处理,易扩展,灵活数据模型,高可用
- 劣势:存储的数据缺少结构化
1.2 分类
- 键值(key-value)存储
- 列存储
- 文档数据库
- 图形数据库
1.3 redis 数据类型
- 字符串类型
- 散列类型
- 列表类型
- 有序集合类型
1.4 redis 应用场景
- 缓存
- 任务队列
- 网站访问统计
- 数据过期处理
- 应用排行榜
- 分布式集群架构中的 session 分离
二、使用 redis
安装参考:安装 redis
2.1 安装 redis (windows 环境下)
- 下载 redis 大家可以根据实际情况下载安装
(告诉大家一个安装的技巧,这些软件一般都在外网,直接下载可能会半天下载不下来,就很难受,所以我们可以把下载链接复制一下,然后粘贴到迅雷中,一秒下好) - 把文件解压,并保存到 c 盘
- 使用命令提示符,进入该目录,使用临时服务安装命令
redis-server.exe redis.windows.conf
,看到下面的样子,说明启动成功了。
这里需要注意一下的是, 这个窗口我们打开了一个 redis 服务器,所以这个窗口要保留,我们在另外打开一个窗口,同样是进入到 该目录 ,输入该命令 redis-cli
2.2 Linux 环境下使用 redis (待更新)
待补充。。。
三、redis 的简单使用
3.1 设置键值对
3.2 查看属性配置
参考:redis 配置
查看所有的配置信息: CONFIG GET *
3.3 redis 常用命令
编号 | 命令 | 描述 | 示例 |
1 | set key value | 设置一个键(名字为 key),值为 value | |
2 | get key | 获取 key 对应的值 | |
3 | del key | 删除 key | |
4 | keys * | 查看当前数据库里面有哪些键值对 |
初次使用,目前只用到这些,更多的可以查阅详细的文档:http://doc.redisfans.com/
3.4 jedis 使用
3.4.1 jedis 下载
使用 Java 连接 redis,使用的开发包有两个。
分享一下 jar包下载链接:jedis 两个 jar 包下载
3.4.2 使用 java 连接 redis
这里我使用了单元测试来实现
package com.imooc.jedis;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
/**
* jedis 测试
* @author Gorit
* */
public class JedisDemo1 {
@Test
/**
* 单实例测试
* */
public void demo1() {
// 1. 设置 id 和端口号
Jedis jedis = new Jedis("127.0.0.1",6379);
// 2. 保存数据
jedis.set("name", "imooc");
// 3. 获取数据
System.out.println(jedis.get("name"));
jedis.close();
}
/**
* 类似 jdbc 连接池操作
* */
@Test
public void demo2() {
// 获取连接池的配置对象
JedisPoolConfig config = new JedisPoolConfig();
// 设置最大连接数
config.setMaxTotal(10);
// 设置最大空闲连接数
config.setMaxIdle(10);
// 获得连接池
JedisPool jdp = new JedisPool(config, "127.0.0.1", 6379);
// 获取核心对象
Jedis jedis = null;
try {
// 通过连接池获得连接
jedis = jdp.getResource();
// 设置数据
jedis.set("name","张三");
// 获得数据
jedis.get("name");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} finally {
// 释放资源
if (jedis != null) {
jedis.close();
}
if (jdp != null) {
jdp.close();
}
}
}
}