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