not only sql
)SQL
語法nosql
中儲存的數據都是KV形式(key:value
),類似於字典從儲存方式,key:value
NoSQL
的世界中沒有一種通用的語言,每種nosql
數據庫都有自己的api
和語法,以及擅長的業務場景NoSQL
中的產品種類相當多:
Redis
Mongodb
Hbase hadoop
Cassandra hadoop
sql
數據庫適合用於關係特別複雜的數據查詢場景,nosql
反之sql
對事務的支援非常完善,而nosql
基本不支援事務Redis
是一個開源的使用ANSI C
語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value
數據庫,並提供多種語言的API。從2010年3月15日起,Redis
的開發工作由VMware
主持。從2013年5月開始,Redis
的開發由Pivotal贊助。Redis
是 NoSQL
技術陣營中的一員,它通過多種鍵值數據型別來適應不同場景下的儲存需求,藉助一些高層級的介面使用其可以勝任,如快取、佇列系統的不同角色Mysql
…Redis
快取數據(用它來做快取,該數據庫也可以永久儲存數據)ubuntu裡apt-get
就是包管理工具,官網提供的快速安裝應用的工具;
Mac裡brew
;
RedHat裡yum
;
sudo apt-get install redis-server
/etc/redis/redis.conf
/usr/local/bin/redis-server
/usr/local/bin/redis-cli
# 1、下載安裝包(選擇3.0.6版本):http://download.redis.io/releases/
cd ~/Desktop
tar -zxvf redis-3.0.6.tar.gz
cd redis-3.0.6
自己閱讀安裝目錄下的README和INSTALL檔案
(一般的安裝包都提供該檔案,用於說明安裝和使用步驟的)
sudo make
sudo make install
sudo cp ./redis.conf /etc/redis/
redis
線下安裝的原始碼和編譯獲取的可執行程式,都在src
目錄中;
sudo redis-server /etc/redis/redis.conf
redis-cli -h 127.0.0.1 -p 6379 shutdown
# 4.4.1.1、設定鍵值對
set <key> <value>
# 4.4.1.2、獲取一個key的值
get <key>
# 4.4.1.3、設定鍵值對的同時指定有效期
setex <key> <有效期,秒> <value>
# 4.4.1.4、一次設定多個鍵值對
mset <key1> <value1> <key2> <value2> .... <keyN> <valueN>
# 4.4.1.5、一次獲取多個鍵的值
mget <key1> <key2> ... <keyN>
# 4.4.1.5、檢視當前庫有哪些key
# 此處正則只支援「*」、「[]」和「?」三種;
# 「*」匹配任意字元
# 「[]」匹配指定字元
# 「?」匹配任意一個字元
keys <正則表達式>
# 4.4.2.1、新建只有一個屬性的雜湊
hset <key> <field> <value>
# 4.4.2.2、新建有多個屬性的雜湊
hmset <key> <field1> <value1> <field2> <value2> ...
# 4.4.2.3、獲取一個雜湊的所有鍵
hkeys <key>
# 4.4.2.4、獲取一個雜湊的一個屬性值
hget <key> <field>
# 4.4.2.5、獲取一個雜湊的多個屬性值
hmget <key> <field1> <field2>...
# 4.4.2.5、刪除一個雜湊中的屬性
hdel <key> <field1> <field2>...
# 注意:如果使用"del <key>"命令會把整個雜湊刪除
# 4.4.3.1、列表左側插入
lpush <key> <value1> <value2>...
# 4.4.3.2、列表右側插入
rpush <key> <value1> <value2>...
# 4.4.3.3、列表指定位置插入(在xxx之前插入)
linsert <key> before <xxx> <value>
# 4.4.3.4、列表指定位置插入(在xxx之後插入)
linsert <key> after <xxx> <value>
# 4.4.3.5、列表成員獲取
# 整數代表下表,和python列表下標類似
# 索引從左側開始,第⼀個元素爲0
# 索引可以是負數,表示從尾部開始計數,如-1表示最後⼀個元素
lrange <key> 0 -1 # [0,-1]獲取所有
lrange <key> 0 2 # [0,2]獲取下標0,1,2三個值
# 4.4.3.6、修改指定下標位置的值
lset <key> <index> <新值>
# 4.4.3.7、刪除列表中的一個成員
# 1、其中count爲0,代表刪除所有相同的值
# 2、其中count爲n(正整數),代表從左到右遍歷刪除相同的值
# 3、其中count爲-n(負整數),代表從右到左遍歷刪除相同的值
lrem <key> <count> <value>
# 4.4.3.8、列表的擷取
# 擷取下標[start,end]範圍類的數據
# 注意:直接操作原列表;
ltrim <key> <start> <end>
特徵:
# 4.4.4.1、新增集合成員
sadd <key> <member1> <member2> <member3>...
# 4.4.4.2、檢視集閤中的所有成員
smembers <key>
# 4.4.4.3、刪除指定成員
srem <key> <member>
所謂有序集合,就是在原有集合set基礎上,給每一個成員新增一個分值/權重值來記錄每個成員的順序!
# 4.4.5.1、新增成員
zadd <key> <score1> <member1> <score2> <member2> ...
# 4.4.5.2、根據下標獲取有續整合員
# 預設有序集合順序是按照分值生序排列
# 以下,獲取[start, stop]下標範圍內的成員
# 索引從左側開始,第⼀個元素爲0
# 索引可以是負數,表示從尾部開始計數,如-1表示最後⼀個元素
zrange <key> <start> <stop>
# 4.4.5.3、返回分值範圍內的成員: min_scoer <= 分值 <= max_score
zrangebyscore <key> <min_score> <max_score>
# 4.4.5.4、刪除指定成員
zrem <key> <member1> <member2> ...
# 4.4.5.5、刪除指定分值範圍內的成員
zremrangebyscore <key> <min_score> <max_score>
from redis.client import StrictRedis
# 1、新建用戶端鏈接物件
conn = StrictRedis(
host='127.0.0.1',
port=6379
)
# 2、通過用戶端物件中的實體方法對redis進行增刪改查操作
# set name haige
conn.set("name", "haige")
# get name
conn.get("name")
# zadd book_count 99 西遊記 88 紅樓夢 77 三國演義
# 注意:在較新的redis用戶端版本中,有續集的新增操作中,成員及分值是以python字典形式傳入函數中 —— 成員爲key,分值爲value
conn.zadd("book_count", {"西遊記":99, "紅樓夢":88, "三國演義":77})
個人記錄,新手入門,多多學習,歡迎大家交流探討!
個人網站: http://106.54.78.238/
song_of _sea的個人網站 http://106.54.78.238/