NoSQL 数据库学习 (redis)

一、Nosql 数据库

常用的 NoSQL 有 redis,mogoDB 等等,这次以 redis 为学习
所有内容学习参考 菜鸟教程

1.1 特点

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

1.2 分类

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

在这里插入图片描述

1.3 redis 数据类型

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

1.4 redis 应用场景

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

二、使用 redis

安装参考:安装 redis

2.1 安装 redis (windows 环境下)

  1. 下载 redis
    大家可以根据实际情况下载安装
    在这里插入图片描述
    (告诉大家一个安装的技巧,这些软件一般都在外网,直接下载可能会半天下载不下来,就很难受,所以我们可以把下载链接复制一下,然后粘贴到迅雷中,一秒下好)
    在这里插入图片描述
  2. 把文件解压,并保存到 c 盘
    在这里插入图片描述
  3. 使用命令提示符,进入该目录,使用临时服务安装命令 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 下载

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();
			}
		}
	}
}
发布了128 篇原创文章 · 获赞 233 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/caidewei121/article/details/104969255