簡介
* NoSQL,全名為Not Only SQL澜汤,指的是非關(guān)系型的數(shù)據(jù)庫
* 隨著訪問量的上升毙玻,網(wǎng)站的數(shù)據(jù)庫性能出現(xiàn)了問題丘跌,于是nosql被設(shè)計出來
優(yōu)點
* 高可擴展性
* 低成本
* 架構(gòu)的靈活性错蝴,半結(jié)構(gòu)化數(shù)據(jù)
* 分布式計算
* 沒有復(fù)雜的關(guān)系
缺點
* 沒有標(biāo)準(zhǔn)化
* 最終一致是不直觀的程序
* 有限的查詢功能(到目前為止)
類型
列存儲
文檔存儲
key-value存儲
圖存儲
對象存儲
xml數(shù)據(jù)庫
nosql--redis安裝
安裝
https://redisdesktop.com/
下載
http://download.redis.io/releases/redis-4.0.9.tar.gz
推薦放到usr/local目錄下
sudo mv redis-4.0.9/ /usr/local/redis/
進入redis目錄
cd /usr/local/redis/redis-4.0.9
如果沒有就進入cd /usr/local/redis/
生成
sudo make
測試
sudo make test
安裝
sudo make install
運行
啟動服務(wù)器:在桌面目錄
redis-server
按ctrl+c停止
啟動客戶端:在新終端中運行
redis-cli
運行命令
ping
數(shù)據(jù)操作
鍵的類型是字符串
鍵的命令
查找鍵妓雾,參數(shù)支持正則
KEYS pattern
keys *
判斷鍵是否存在炮温,如果存在返回1,不存在返回0
EXISTS key [key ...]
查看鍵對應(yīng)的value的類型
TYPE key
刪除鍵及對應(yīng)的值
DEL key [key ...]
設(shè)置過期時間奕塑,以秒為單位
創(chuàng)建時沒有設(shè)置過期時間則一直存在堂污,直到使用使用DEL移除
EXPIRE key seconds
查看有效時間,以秒為單位
TTL key
值的類型分為五種
字符串string
設(shè)置
設(shè)置鍵值
set key value
設(shè)置鍵值及過期時間龄砰,以秒為單位
SETEX key seconds value
設(shè)置多個鍵值
MSET key value [key value ...]
獲取
根據(jù)鍵獲取值盟猖,如果不存在此鍵則返回nil
GET key
根據(jù)多個鍵獲取多個值
MGET key [key ...]
運算
要求:值是數(shù)字
將key對應(yīng)的value加1
INCR key
將key對應(yīng)的value加整數(shù)
INCRBY key increment
將key對應(yīng)的value減1
DECR key
將key對應(yīng)的value減整數(shù)
DECRBY key decrement
其他
追加值
APPEND key value
獲取值長度
STRLEN key
* 哈希hash
hash用于存儲對象,對象的格式為鍵值對
設(shè)置
設(shè)置單個屬性
HSET key field value
設(shè)置多個屬性
HMSET key field value [field value ...]
獲取
獲取一個屬性的值
HGET key field
獲取多個屬性的值
HMGET key field [field ...]
獲取所有屬性和值
HGETALL key
獲取所有的屬性
HKEYS key
返回包含屬性的個數(shù)
HLEN key
獲取所有值
HVALS key
其它
判斷屬性是否存在
HEXISTS key field
刪除屬性及值
HDEL key field [field ...]
返回值的字符串長度
HSTRLEN key field
* 列表list
設(shè)置
在頭部插入數(shù)據(jù)
LPUSH key value [value ...]
在尾部插入數(shù)據(jù)
RPUSH key value [value ...]
在一個元素的前|后插入新元素
LINSERT key BEFORE|AFTER pivot value
索引可以是負(fù)數(shù)换棚,表示偏移量是從list尾部開始計數(shù)扒披,如-1表示列表的最后一個元素
LSET key index value
獲取
移除并且返回 key 對應(yīng)的 list 的第一個元素
LPOP key
移除并返回存于 key 的 list 的最后一個元素
RPOP key
偏移量也可以是負(fù)數(shù),表示偏移量是從list尾部開始計數(shù)圃泡,如-1表示列表的最后一個元素
LRANGE key start stop
其它
偏移量也可以是負(fù)數(shù),表示偏移量是從list尾部開始計數(shù)愿险,如-1表示列表的最后一個元素
LTRIM key start stop
返回存儲在 key 里的list的長度
LLEN key
返回列表里索引對應(yīng)的元素
LINDEX key index
* 集合set
特點
* 無序集合
* 元素為string類型
* 元素具有唯一性颇蜡,不重復(fù)
設(shè)置
添加元素
SADD key member [member ...]
獲取
返回key集合所有的元素
SMEMBERS key
返回集合元素個數(shù)
SCARD key
其他
求多個集合的交集
SINTER key [key ...]
求某集合與其它集合的差集
SDIFF key [key ...]
求多個集合的合集
SUNION key [key ...]
判斷元素是否在集合中
SISMEMBER key member
有序集合zset
特點
* sorted set,有序集合
* 元素為string類型
* 元素具有唯一性辆亏,不重復(fù)
* 每個元素都會關(guān)聯(lián)一個double類型的score风秤,表示權(quán)重,通過權(quán)重將元素從小到大排序
* 元素的score可以相同
設(shè)置
添加
ZADD key score member [score member ...]
獲取
返回指定范圍內(nèi)的元素
ZRANGE key start stop
返回元素個數(shù)
ZCARD key
返回有序集key中扮叨,score值在min和max之間的成員個數(shù)
ZCOUNT key min max
返回有序集key中缤弦,成員member的score值
ZSCORE key member