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();
			}
		}
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章