----------NoSQL(Not Only Sql)非關係型數據庫的特性:
1,High performance --高併發讀寫
2,Huge Storage--海量數據的高效率存儲和訪問
3,High Scalability && High Availability--高可擴展性和高可用性
目前市面上流行的NoSQL的數據庫有:Redis、CouchDB、mongoDB、membase、cassandra、riak等
NoSQL數據庫的四大分類:
鍵值存儲(key--value)、列存儲、文檔數據庫、圖形數據庫
NoSQL的特點:易擴展、靈活的數據模型、大數據量,高性能、高可用。
web1.0(關係型數據庫)、web2.0(非關係型數據庫)
-------------Redis
redis高性能鍵值對數據庫,支持的鍵值數據類型:字符串類型、散列類型、列表類型、集合類型、有序集合類型。
--windows環境下安裝Redis及配置環境變量
下載地址:https://github.com/MSOpenTech/redis/releases
一般下載第二個:Redis-x64-3.2.100.zip,下載後解壓即可。比如我文件是放在D:\DevelopmentRoot\redis下
配置環境變量:找到path,編輯,在最後追加:D:\DevelopmentRoot\redis即可。然後cmd進入命令行方式,輸入:redis-server即打開了redis的服務器,如果要打開redis的客戶端,同理,cmd-->輸入:redis-cli,可看到頁面上出現客戶端的服務器ip及端口,默認ip爲127.0.0.1,端口爲6379,這兩個都是可以進行修改的,打開redis文件夾下面的redis.windows.conf文件,大概在56行,找到:bind 127.0.0.1,表示服務器ip,大概79行找到:port 6379表示默認的端口。比如,我在客戶端輸入:set key abc,回車,然後輸入:get key回車後可以看到“abc”被輸入出來。這一過程就是利用redis數據庫進行字符串的添加值與取值。
redis的五種數據結構:字符串(Stirng)、字符串列表(list)、有序字符串集合(stored set)、哈希(hash)、字符串集合(set)
字符串:二進制安全的,存入和獲取的數據相同;value最多可以容納的數據長度爲512M。
字符串:set存值,get取值,getset先取值在存值;del刪除某個值;incr表示爲某個整型數據進行自增,默認初始值爲0;decr表示爲某個整型數據進行自減,默認初始值爲0;incr key value1(添加的值)表示爲某個整型數增加value1,是incr的擴展命令;同理,decr key value1;append表示爲某個變量追加一個字符串(這個變量可以是字符串也可以是整數等),如append "name" 5,結果就爲name5,如果如果append後面的key爲初始化過,則使用append後的值就爲key後面的value值,比如:append
key 1,key未初始化過,則結果爲1.
哈希:hset表示爲某個哈希設置key,value,hget表示獲取某個哈希裏面的key對應的value值;hmset表示爲某個哈希同時設置多個hey,value鍵值對,hmget表示同時可以獲取多個哈希裏面的keys對應的values;hdel表示刪除哈希裏面的指定key,hgetall表示獲取哈希裏面的所有keys,values鍵值對;hincrby表示爲哈希裏面的某個key對應的value值加上某個變量值求和;hexits表示哈希中是否存在某個key,hkeys表示列出哈希裏面的所有key,hvals表示列出哈希裏面的所有values。
。。。。。。。。。。。
redis數據庫個數:默認爲16個,可在redis-windows.conf文件中找到,查詢某個數據庫的命令爲:select 0(表示查詢第一個數據庫),select 1表示查詢第二個數據庫,
如果想要將第一個數據庫裏面的name數據轉到第二個數據庫,可先切換到第一個數據庫,然後命令:move name 1即可將該數據轉到第二個數據庫中。
redis事務:
multi:相當於關係型數據庫中的beginSession表示開啓事務;exec:相當於關係型數據庫中的commit,表示提交;discard:相當於關係型數據庫中的rollback。
當開啓事務後如果沒有進行exec,則在另一個客戶端獲取的數據還是之前的數據。
----------------Jedis入門
redis對Java的連接方式有:areids、JDBC-Redis、Jedipus、Jedis、JRedis、lettuce、mod-redis,官網推薦是Jedis連接
新建maven項目,在pom.xml中加入jedis的座標(如果不知道Jedis的座標,可在maven中央倉庫搜索,這裏引用最新Jedis的jar包,Jedis座標如下:)
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
如果不想用maven來引包,也可直接下載對應包,然後導入到項目中,這裏不作說明。
以下提供兩個小例子說明怎麼使用,可直接copy出來運行:
package com.org.redis.redis_model;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
/**
* Hello world!
*
*/
public class jedisDemo1
{
@Test
/**
* 單實例連接
*/
public void test1(){
//連接Jedis的服務器
Jedis jedis=new Jedis("127.0.0.1", 6379);
//設置字符串值
jedis.set("name", "jack");
//取值
String value=jedis.get("name");
System.out.println("值爲:"+value);
//Redis Java String(字符串) 實例 存儲數據到列表中
jedis.lpush("site-list", "Runoob");
jedis.lpush("site-list", "Google");
jedis.lpush("site-list", "Taobao");
//Redis Java List(列表) 實例 獲取存儲的數據並輸出
List<String> list = jedis.lrange("site-list", 0 ,2);
for(int i=0; i<list.size(); i++) {
System.out.println("列表項爲: "+list.get(i));
}
//Redis Java Keys 實例 獲取數據並輸出
Set<String> keys = jedis.keys("*");
Iterator<String> it=keys.iterator() ;
while(it.hasNext()){
String key = it.next();
System.out.println(key);
}
//關閉鏈接資源
jedis.close();
}
@Test
/**
* 連接池連接
*/
public void test2(){
//獲取連接池的配置對象
JedisPoolConfig jedisPoolConfig=new JedisPoolConfig();
//設置最大連接數
jedisPoolConfig.setMaxTotal(30);
//設置最大空閒數
jedisPoolConfig.setMaxIdle(10);
//獲取連接池
JedisPool jedisPool=new JedisPool(jedisPoolConfig,"127.0.0.1",6379);
//獲取連接對象
Jedis jedis=null;
try {
jedis=jedisPool.getResource();
//開始添加值
jedis.set("name", "張三");
String value=jedis.get("name");
System.out.println(value);
} catch (Exception e) {
System.out.println("連接失敗了!");
}finally {
if(jedis != null){
jedis.close();
}
if(jedisPool != null){
jedisPool.close();
}
}
}
}
---------------------------------Redis的持久化
所謂持久化就是指將保存在Redis服務端內存的數據同步到本地硬盤來保存,以便後面關閉服務後數據仍然存在的情況。
兩種方式:RDB、AOF以及RDB與AOF合併使用。
在redis客戶端輸入:save然後回車,會在你的redis文件夾下(與redis-server.exe同級的地方)生成一個dump.dbf文件,這個文件就是一個備份文件,如果沒有顯示出來,可能被隱藏了,通過文件選項設置就可以出來了(可百度)。
通過命令:config get dir可獲取到默認生成的dump.dbf文件不存的路徑,也可以在redis.windows.conf文件中找到:dir ./的位置,然後改成:dir D:\DevelopmentRoot\redis(自己想要保存的dump.dbf文件的位置)
-------------redis的Linux系統安裝過程
1,需要安裝gcc工具,在安裝gcc工具時需要是root用戶才能安裝否則會失敗,命令行爲:
yum install gcc
2,然後等待,輸入:y 繼續等待,再次輸入:y 直到看到complete!表示成功安裝好了。
3,下載並解壓Redis(也可用windows環境下下載gz包,然後利用上傳工具FileZilla進行上傳),命令行方式爲:
下載redis: wget http://download.redis.io/releases/redis-2.8.17.tar.gz
解壓redis tar xzf redis-2.8.17.tar.gz 打開解壓後的文件 cd redis-2.8.17 編譯: make 啓動redis服務: cd src ./redis-server 啓動redis客戶端(需要另開窗口): cd src ./redis-cli
----------------------------------------
http://www.runoob.com/redis/redis-partitioning.html