-
redis數據結構
查看全部 -
redis的應用場景
查看全部 -
redis支持的鍵值類型
查看全部 -
Nosql的特點
易擴展
靈活的數據模型
大數據量,高性能
高可用
查看全部 -
NoSql數據庫比較
查看全部 -
Redis入門
數據類型
字符串
get 設置k-v
getset k v ? :將k中原來的值設置為新的v
incr ?遞增decr 遞減
incrby 直接增加到n decrby 直接增加n
append 在字符串后面追加一個字符
常用命令
字符串列表
lpush左插入 ?rpush右插入
lrang ?start end查看 ?-1是最后一個
lpop 左彈出 rpop右彈出
llen 查看列表元素個數
lpushx ?rpushx僅在列表存在的時候才進行插入
lrem count v ?刪除count個v
lset index v 在指定位置插入值
linsert xx after/before n v在 在n的前后位置插入v
rpoplpush a b 將a中的一個數據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 追加數值
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中的數量
srandmember xxx 隨機取出一個數
將結果存入到第三個set中
sdiffstore xxx a b ?將a和b中差的值fangdaoxxx中
sinterstore ?xxx ?a ?b ?將a和b中的交集存到xxx中
sunionstore ?xxx a b ?將a和b的并集存放到xxx中
最大元素數量是4294967295
常用命令
有序字符串集合sorted-set
zadd ?xxx ?(v-k)… 添加元素
zscore xxx k 查看某個key的值、
zcard xxx 獲取數量
zrem xxx k… 刪除指定的k
查看
刪除
zincrby xxx ?num k ?給k值增加n
zcount ?xxx ?start ?end ?獲取star到end的v值的個數
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定義的注意點
不要太長
不要太短
要有統一的命名規范
keys的通用操作
獲取所有的keys ? keys*
刪除del xxx…
exists xxx 查看某個key是否存在
rename ?重命名
expire ?xxx ?設置倒計時(秒)
ttl ?xxx 查看剩余時間
get 獲取
type 獲取k的類型
reids的特性
多數據庫
事務
多數據庫
move可以將一個key從一個數據庫移動到另一個中
事務
通過multi 開啟事務
redis持久化
RDB(默認)
優勢
每個數據庫是一個文件,容易備份
災難恢復
性能優化,只負責分配進程
缺點
數據非常大,由于是子進程來處理,服務器可能會暫停運轉
并不能保證數據的高可用性,比如每30秒向硬盤中寫入一次數據,在第25秒的時候服務器掛了,那么數據就丟失了
AOF
優勢
可以帶來更高的安全性 同步持久化
不會破壞日志中的已存在的數據 ?是append到日志中
如果日志過大,可以重啟redis
格式很清晰的日志文件,可以通過這個日志來完成數據重建
劣勢
效率低一些
文件比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 優勢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
數據庫,相比于其他同類型產品,有如下特點。支持數據持久化,可以將內存中的數據保存在磁盤中,重啟時再次加載使用即可;
不僅支持
key-value
類型的數據,同時還支持list、set、hash、zset
等數據結構的存儲;支持
master-slave
模式的數據備份;
1.2 Redis 優勢
高性能;
支持的數據類型豐富;
原子性,要么成功執行,要么失敗完全不執行。單個操作時原子性的,多個操作也支持事務,通過
MULTI
和EXEC
指令封裝;支持其他豐富的特性,如
publish/subscribe
,通知,key
過期等;
1.3 Redis 的引用場景
內存存儲、持久化
高效率,可以用于高速緩存
發布訂閱系統
地圖信息分析
計時器、計數器
任務隊列
數據過期處理
應用排行榜
……
1.4 Redis 和其他 key - value 的不同
Redis 的數據結構更加復雜且提供對他們的原子性操作,而且基于基本數據結構的同時也對程序員透明,無需進行額外抽象;
Redis 運行在內存中但是可以持久化到硬盤,所以在對不同數據集進行高速讀寫是需要權衡內存大小,數據量不能大于硬件內存;
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 ?# 進入文件夾 ?cd?redis-6.0.6 ??!【幾g ?make
在一個終端中啟動服務端
在另一個終端中啟動客戶端進行測試
2.3 注意
當在控制臺中獲取中文鍵值時,可能會出現亂碼的情況,此時,可以通過在啟動客戶端時加入
--raw
參數即可解決;?#?可能亂碼的啟動方式 ?./redis-cli ?#?解決亂碼的啟動方式 ?./redis-cli?--raw
3. 基本操作及常識
選擇對應數據庫
?#?redis?默認提供?16?個數據庫,默認使用?0?號數據庫 ?select?num(數據庫編號)
獲取數據庫名
?get?name
查看數據庫大小
?DBSIZE
查看數據庫所有 key
?keys?*
清空數據庫
?#?清空所有數據庫 ?FLUSHALL ? ?#?清空當前數據庫 ?flush?db
查看某 key 是否存在
?EXISTS?key
移除當前 key
?move?key?value
設置 key 過期時間
?#?time?時間單位為秒 ?EXPIRE?key?time
查看當前 key 的類型
?type?key
查看全部 -
1. 什么是 NoSQL
NoSQL = Not Only SQL
泛指非關系型數據庫,隨 Web2.0 的誕生,傳統關系型數據庫難以應對 Web2.0,尤其是超大規模的高并發社區。NoSQL 在當今大數據程序下較為流行。
2. NoSQL 特點
高擴展性(數據間無關系,容易擴展)
大數據量高性能(官方給定數據,寫操作 8w次/s,讀操作 11w次/s)
數據類型多樣(無需事先設計數據庫,隨取隨用)
高可用
傳統 RDBMS 和 NoSQL
不僅僅是數據
無固定查詢語言
鍵值對存儲,列存儲、文檔存儲、圖形數據庫
最終一直性
CAP 定理和 BASE
高性能,高可用,高可拓
……
結構化組織
SQL
數據和關系均存在單獨的表中
操作數據定義語言
嚴格的一致性
基礎的事務
……
傳統 RDBMS
NoSQL
3. NoSQL 的四大分類
KV 鍵值對
文檔型數據庫(bson & json)
列存儲數據庫
圖關系數據庫
分類 實例 應用場景 數據模型 優點 缺點 鍵值對(key-value) Redis、Voldemort 內存緩存,用于處理大量數據的高訪問負載,也可用于日志系統等 key 指向 value 的鍵值對,通常是用 HashTable 來實現 查找速度快 數據無結構化,通常只被當做字符串或二進制數據 列存儲數據庫 HBase 分布式文件系統 以列簇式存儲,講同一列數據存儲在一起 1. 查找速度快2. 擴展性強3. 更容易進行分布式擴展 功能相對局限 文檔型數據庫 MongoDb Web 應用,類似于 Key-Value key-value 對應的鍵值對,value 為結構化的數據 1. 數據結構要求寬松2. 表結構可變,無需像關系型數據庫一樣預先定義表結構 查詢性能低,且查詢語法不統一 圖形數據庫(Graph) Neo4j、InfoGrid 社交網絡、推薦系統等 圖結構 可以利用圖結構相關算法,如最短路徑尋址、N度關系查找等 許多時候需要對整個圖進行計算才能得到最終結果,效率不高;而且做分布式集群較困難 查看全部 -
NoSQL:非關系型數據庫
?* High performance - 高并發讀寫
?* Huge Storage - 海量數據的高效率存儲和訪問
?* High Scalability && High Availability -高可擴展性和可用性
主流NoSQL產品: mongoDB? ?Redis??
NoSQL數據庫的四打分類
? ?* 鍵值(Key-Value)存儲? ,如Redis ,優勢:快速查詢,劣勢:缺少結構化
? ?* 列存儲? ,如HBase,優勢:查詢速度快,劣勢:功能相對局限
? ?* 文檔數據庫,如MongoDb,優勢:數據結構要求不嚴格,劣勢:查詢性能不高
? ?* 圖形數據庫, 如Infinite Graph
?
NoSQL的特點
? ? * 易擴展??
? ? * 靈活的數據模型
? ? * 大數據量,高性能??
? ? * 高可用
??
Redis的安裝
? ?搭建環境: 虛擬機:VMware 10.0.2
? ? ? ? ? ? ? ? ? ?Linux系統:CentOS-6.5
? ? ? ? ? ? ? ? ? ?SSH客戶端:SecureCRT7.3, SecureFX7.3
查看全部 -
Redis應用場景
查看全部 -
NoSQL的特點
查看全部
舉報