noSQL 数据库学习笔记




一、Nosql 数据库

常用的 NoSQL 有 redis,mogoDB 等等,这次以 redis 为学习

所有内容学习参考 菜鸟教程

1.1 特点


  1. 优势:快速查询,常常用来作为缓存处理,易扩展,灵活数据模型,高可用
  2. 劣势:存储的数据缺少结构化

1.2 分类


  1. 键值(key-value)存储
  2. 列存储
  3. 文档数据库
  4. 图形数据库

NoSQL 数据库学习 (redis)_nosql

1.3 redis 数据类型


  • 字符串类型
  • 散列类型
  • 列表类型
  • 有序集合类型

1.4 redis 应用场景


  1. 缓存
  2. 任务队列
  3. 网站访问统计
  4. 数据过期处理
  5. 应用排行榜
  6. 分布式集群架构中的 session 分离

二、使用 redis

安装参考:​​安装 redis​

2.1 安装 redis (windows 环境下)


  1. ​下载 redis​​ 大家可以根据实际情况下载安装
    NoSQL 数据库学习 (redis)_数据库_02
    (告诉大家一个安装的技巧,这些软件一般都在外网,直接下载可能会半天下载不下来,就很难受,所以我们可以把下载链接复制一下,然后粘贴到迅雷中,一秒下好)
    NoSQL 数据库学习 (redis)_java_03
  2. 把文件解压,并保存到 c 盘
    NoSQL 数据库学习 (redis)_java_04
  3. 使用命令提示符,进入该目录,使用临时服务安装命令 ​​redis-server.exe redis.windows.conf​​ ,看到下面的样子,说明启动成功了。
    NoSQL 数据库学习 (redis)_nosql_05

这里需要注意一下的是, 这个窗口我们打开了一个 redis 服务器,所以这个窗口要保留,我们在另外打开一个窗口,同样是进入到 该目录 ,输入该命令 ​​redis-cli​

NoSQL 数据库学习 (redis)_nosql_06

2.2 Linux 环境下使用 redis (待更新)

待补充。。。

三、redis 的简单使用

3.1 设置键值对

NoSQL 数据库学习 (redis)_数据库_07

3.2 查看属性配置

参考:​​redis 配置​

查看所有的配置信息: ​​CONFIG GET *​

NoSQL 数据库学习 (redis)_数据库_08

3.3 redis 常用命令

编号

命令

描述

示例

1

set key value

设置一个键(名字为 key),值为 value

NoSQL 数据库学习 (redis)_java_09

2

get key

获取 key 对应的值

NoSQL 数据库学习 (redis)_nosql_10

3

del key

删除 key

NoSQL 数据库学习 (redis)_redis_11

4

keys *

查看当前数据库里面有哪些键值对

NoSQL 数据库学习 (redis)_java_12

初次使用,目前只用到这些,更多的可以查阅详细的文档:​​http://doc.redisfans.com/​

3.4 jedis 使用

3.4.1 jedis 下载

​jedis 下载​

使用 Java 连接 redis,使用的开发包有两个。

分享一下 jar包下载链接:​​jedis 两个 jar 包下载​

NoSQL 数据库学习 (redis)_nosql_13

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();
}
}
}
}