-
redis數(shù)據(jù)結(jié)構
查看全部 -
redis的應用場景
查看全部 -
redis支持的鍵值類型
查看全部 -
Nosql的特點
易擴展
靈活的數(shù)據(jù)模型
大數(shù)據(jù)量,高性能
高可用
查看全部 -
NoSql數(shù)據(jù)庫比較
查看全部 -
Redis入門
數(shù)據(jù)類型
字符串
get 設置k-v
getset k v ? :將k中原來的值設置為新的v
incr ?遞增decr 遞減
incrby 直接增加到n decrby 直接增加n
append 在字符串后面追加一個字符
常用命令
字符串列表
lpush左插入 ?rpush右插入
lrang ?start end查看 ?-1是最后一個
lpop 左彈出 rpop右彈出
llen 查看列表元素個數(shù)
lpushx ?rpushx僅在列表存在的時候才進行插入
lrem count v ?刪除count個v
lset index v 在指定位置插入值
linsert xx after/before n v在 在n的前后位置插入v
rpoplpush a b 將a中的一個數(shù)據(jù)pop壓入b
count > 0 從起始位置開始刪除count個v
count < 0 從末尾位置開始刪除count個v
count = 0 刪除所有的v
常用命令
哈希
hset k 屬性 值 ?設置k-v ?hmset ? 設置多個k-v
hget 獲取指定屬性的值 ?hmget ?獲取多個
hgetall 獲取所有屬性的值
hdel 刪除k中某個屬性的值 del直接刪除一個k
hinrcby 追加數(shù)值
hexists 查看查看k中是否存在某個屬性
hgetall 獲取k中所有的屬性和值
hlen獲取k的長度
hkeys獲取k中素有的屬性 ? hvals獲取所有的值
常用命令
字符串集合(set)
sadd xxx n.. 添加元素n…
srem xxx n… 刪除元素
smembers xxx 查看set中的元素
sismember xxx n 查看是不是xxx中的元素
sinter a b a和b中的交集
sunion a b ?a和b中的并集
scard xxx 獲取xxx中的數(shù)量
srandmember xxx 隨機取出一個數(shù)
將結(jié)果存入到第三個set中
sdiffstore xxx a b ?將a和b中差的值fangdaoxxx中
sinterstore ?xxx ?a ?b ?將a和b中的交集存到xxx中
sunionstore ?xxx a b ?將a和b的并集存放到xxx中
最大元素數(shù)量是4294967295
常用命令
有序字符串集合sorted-set
zadd ?xxx ?(v-k)… 添加元素
zscore xxx k 查看某個key的值、
zcard xxx 獲取數(shù)量
zrem xxx k… 刪除指定的k
查看
刪除
zincrby xxx ?num k ?給k值增加n
zcount ?xxx ?start ?end ?獲取star到end的v值的個數(shù)
zrange/zrevrange ?xxx start end ?(withscores ?將所有的v值列出)升序/降序 ?按照位置
zrangebyscore ?xxx start end(withscores ?將所有的v值列出) (limit star end ? 限制位置) ? 按照v值升序
ztemrangebyrank xxx start end ?按照位置范圍刪除
ztemrangebycore ?xxx start end 按照v大小刪除
常用命令
Key定義的注意點
不要太長
不要太短
要有統(tǒng)一的命名規(guī)范
keys的通用操作
獲取所有的keys ? keys*
刪除del xxx…
exists xxx 查看某個key是否存在
rename ?重命名
expire ?xxx ?設置倒計時(秒)
ttl ?xxx 查看剩余時間
get 獲取
type 獲取k的類型
reids的特性
多數(shù)據(jù)庫
事務
多數(shù)據(jù)庫
move可以將一個key從一個數(shù)據(jù)庫移動到另一個中
事務
通過multi 開啟事務
redis持久化
RDB(默認)
優(yōu)勢
每個數(shù)據(jù)庫是一個文件,容易備份
災難恢復
性能優(yōu)化,只負責分配進程
缺點
數(shù)據(jù)非常大,由于是子進程來處理,服務器可能會暫停運轉(zhuǎn)
并不能保證數(shù)據(jù)的高可用性,比如每30秒向硬盤中寫入一次數(shù)據(jù),在第25秒的時候服務器掛了,那么數(shù)據(jù)就丟失了
AOF
優(yōu)勢
可以帶來更高的安全性 同步持久化
不會破壞日志中的已存在的數(shù)據(jù) ?是append到日志中
如果日志過大,可以重啟redis
格式很清晰的日志文件,可以通過這個日志來完成數(shù)據(jù)重建
劣勢
效率低一些
文件比RDB大一些
查看全部 -
啟動 redis-server redis-conf
停止 redis-cli shutdown
查看 ps -ef | grep -i redis
查看全部 -
# Redis Desktop Manager
> Redis GUI management tool for Windows, macOS, iPad and Linux.
https://redisdesktop.com/
查看全部 -
1. 什么是 Redis1.1 Redis 特點1.2 Redis 優(yōu)勢1.3 Redis 的引用場景1.4 Redis 和其他 key - value 的不同2. Redis 安裝2.1 Windows 下安裝2.2 Linux 下安裝2.3 注意3. 基本操作及常識
1. 什么是 Redis
1.1 Redis 特點
Redis 是一個高性能的開源的
key-value數(shù)據(jù)庫,相比于其他同類型產(chǎn)品,有如下特點。支持數(shù)據(jù)持久化,可以將內(nèi)存中的數(shù)據(jù)保存在磁盤中,重啟時再次加載使用即可;
不僅支持
key-value類型的數(shù)據(jù),同時還支持list、set、hash、zset等數(shù)據(jù)結(jié)構的存儲;支持
master-slave模式的數(shù)據(jù)備份;
1.2 Redis 優(yōu)勢
高性能;
支持的數(shù)據(jù)類型豐富;
原子性,要么成功執(zhí)行,要么失敗完全不執(zhí)行。單個操作時原子性的,多個操作也支持事務,通過
MULTI和EXEC指令封裝;支持其他豐富的特性,如
publish/subscribe,通知,key過期等;
1.3 Redis 的引用場景
內(nèi)存存儲、持久化
高效率,可以用于高速緩存
發(fā)布訂閱系統(tǒng)
地圖信息分析
計時器、計數(shù)器
任務隊列
數(shù)據(jù)過期處理
應用排行榜
……
1.4 Redis 和其他 key - value 的不同
Redis 的數(shù)據(jù)結(jié)構更加復雜且提供對他們的原子性操作,而且基于基本數(shù)據(jù)結(jié)構的同時也對程序員透明,無需進行額外抽象;
Redis 運行在內(nèi)存中但是可以持久化到硬盤,所以在對不同數(shù)據(jù)集進行高速讀寫是需要權衡內(nèi)存大小,數(shù)據(jù)量不能大于硬件內(nèi)存;
2. Redis 安裝
2.1 Windows 下安裝
去下載安裝包,https://github.com/tporadowski/redis/releases,支持 32 和 64 位,按需下載即可;
解壓縮下載后的壓縮包,并存在你自己指定的目錄;

打開終端,然后切換到 Redis 目錄,運行如下命令即可:
?./redis-server.exe

打開另一個窗口,在 Redis 目錄下運行另一個 Redis,然后進行設置和取出鍵值對測試;
?./redis-cli.exe ?#?設置鍵值對 ?set?key?"cunyu" ?#?取出鍵值對 ?get

2.2 Linux 下安裝
下載最新版本安裝包,http://redis.cn/download
使用如下命令解壓安裝包到你需要存儲的位置,然后進行編譯
??!〗鈮??tar?-zxvf?redis-6.0.6.tar.gz ??!∵M入文件夾 ?cd?redis-6.0.6 ??!【幾g ?make

在一個終端中啟動服務端

在另一個終端中啟動客戶端進行測試

2.3 注意
當在控制臺中獲取中文鍵值時,可能會出現(xiàn)亂碼的情況,此時,可以通過在啟動客戶端時加入
--raw參數(shù)即可解決;?#?可能亂碼的啟動方式 ?./redis-cli ?#?解決亂碼的啟動方式 ?./redis-cli?--raw
3. 基本操作及常識
選擇對應數(shù)據(jù)庫
?#?redis?默認提供?16?個數(shù)據(jù)庫,默認使用?0?號數(shù)據(jù)庫 ?select?num(數(shù)據(jù)庫編號)
獲取數(shù)據(jù)庫名
?get?name
查看數(shù)據(jù)庫大小
?DBSIZE
查看數(shù)據(jù)庫所有 key
?keys?*
清空數(shù)據(jù)庫
?#?清空所有數(shù)據(jù)庫 ?FLUSHALL ? ?#?清空當前數(shù)據(jù)庫 ?flush?db
查看某 key 是否存在
?EXISTS?key
移除當前 key
?move?key?value
設置 key 過期時間
?#?time?時間單位為秒 ?EXPIRE?key?time
查看當前 key 的類型
?type?key
查看全部 -
1. 什么是 NoSQL
NoSQL = Not Only SQL
泛指非關系型數(shù)據(jù)庫,隨 Web2.0 的誕生,傳統(tǒng)關系型數(shù)據(jù)庫難以應對 Web2.0,尤其是超大規(guī)模的高并發(fā)社區(qū)。NoSQL 在當今大數(shù)據(jù)程序下較為流行。
2. NoSQL 特點
高擴展性(數(shù)據(jù)間無關系,容易擴展)
大數(shù)據(jù)量高性能(官方給定數(shù)據(jù),寫操作 8w次/s,讀操作 11w次/s)
數(shù)據(jù)類型多樣(無需事先設計數(shù)據(jù)庫,隨取隨用)
高可用
傳統(tǒng) RDBMS 和 NoSQL
不僅僅是數(shù)據(jù)
無固定查詢語言
鍵值對存儲,列存儲、文檔存儲、圖形數(shù)據(jù)庫
最終一直性
CAP 定理和 BASE
高性能,高可用,高可拓
……
結(jié)構化組織
SQL
數(shù)據(jù)和關系均存在單獨的表中
操作數(shù)據(jù)定義語言
嚴格的一致性
基礎的事務
……
傳統(tǒng) RDBMS
NoSQL
3. NoSQL 的四大分類
KV 鍵值對
文檔型數(shù)據(jù)庫(bson & json)
列存儲數(shù)據(jù)庫
圖關系數(shù)據(jù)庫
分類 實例 應用場景 數(shù)據(jù)模型 優(yōu)點 缺點 鍵值對(key-value) Redis、Voldemort 內(nèi)存緩存,用于處理大量數(shù)據(jù)的高訪問負載,也可用于日志系統(tǒng)等 key 指向 value 的鍵值對,通常是用 HashTable 來實現(xiàn) 查找速度快 數(shù)據(jù)無結(jié)構化,通常只被當做字符串或二進制數(shù)據(jù) 列存儲數(shù)據(jù)庫 HBase 分布式文件系統(tǒng) 以列簇式存儲,講同一列數(shù)據(jù)存儲在一起 1. 查找速度快2. 擴展性強3. 更容易進行分布式擴展 功能相對局限 文檔型數(shù)據(jù)庫 MongoDb Web 應用,類似于 Key-Value key-value 對應的鍵值對,value 為結(jié)構化的數(shù)據(jù) 1. 數(shù)據(jù)結(jié)構要求寬松2. 表結(jié)構可變,無需像關系型數(shù)據(jù)庫一樣預先定義表結(jié)構 查詢性能低,且查詢語法不統(tǒng)一 圖形數(shù)據(jù)庫(Graph) Neo4j、InfoGrid 社交網(wǎng)絡、推薦系統(tǒng)等 圖結(jié)構 可以利用圖結(jié)構相關算法,如最短路徑尋址、N度關系查找等 許多時候需要對整個圖進行計算才能得到最終結(jié)果,效率不高;而且做分布式集群較困難
查看全部 -
NoSQL:非關系型數(shù)據(jù)庫
?* High performance - 高并發(fā)讀寫
?* Huge Storage - 海量數(shù)據(jù)的高效率存儲和訪問
?* High Scalability && High Availability -高可擴展性和可用性
主流NoSQL產(chǎn)品: mongoDB? ?Redis??
NoSQL數(shù)據(jù)庫的四打分類
? ?* 鍵值(Key-Value)存儲? ,如Redis ,優(yōu)勢:快速查詢,劣勢:缺少結(jié)構化
? ?* 列存儲? ,如HBase,優(yōu)勢:查詢速度快,劣勢:功能相對局限
? ?* 文檔數(shù)據(jù)庫,如MongoDb,優(yōu)勢:數(shù)據(jù)結(jié)構要求不嚴格,劣勢:查詢性能不高
? ?* 圖形數(shù)據(jù)庫, 如Infinite Graph
?
NoSQL的特點
? ? * 易擴展??
? ? * 靈活的數(shù)據(jù)模型
? ? * 大數(shù)據(jù)量,高性能??
? ? * 高可用
??
Redis的安裝
? ?搭建環(huán)境: 虛擬機:VMware 10.0.2
? ? ? ? ? ? ? ? ? ?Linux系統(tǒng):CentOS-6.5
? ? ? ? ? ? ? ? ? ?SSH客戶端:SecureCRT7.3, SecureFX7.3
查看全部 -
Redis應用場景
查看全部 -
NoSQL的特點
查看全部
舉報