原文鏈接:https://www.cnblogs.com/cxxjohnson/p/9072383.html 參考自https://www.cnblogs.com/cxxjohnson/p/9072383.html 1.基于內(nèi)存的key-value數(shù)據(jù)庫 2.基于c語言編寫的,可以支持多種語言的api 3.支持數(shù)據(jù)持久化 4.五種基本數(shù)據(jù)結(jié)構(gòu) 5異常快速,Redis數(shù)據(jù)庫完全在內(nèi)存中,因此處理速度非??靤et每秒11萬次,取get 81000次 備注:Redis是單線程,但是這并不意味著會成為運行時的瓶頸。 string:字符串構(gòu)建其他數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ) hash:哈希列表 list(可重復):列表 set(不可重復無序):集合,在哈希列表的基礎(chǔ)上實現(xiàn) sorted set(不可重復有序):有序集合 使用場景 1. 去最新n個數(shù)據(jù)的操作 2. 排行榜,取top n個數(shù)據(jù) //最佳人氣前10條 3. 精確的設(shè)置過期時間 4. 計數(shù)器 5. 實時系統(tǒng), 反垃圾系統(tǒng) 6. pub, sub發(fā)布訂閱構(gòu)建實時消息系統(tǒng) 7. 構(gòu)建消息隊列 8. 緩存 
cmd訪問redis redis-cli.exe -h 127.0.0.1 -p 6379 key keys * 獲取所有的key select 0 選擇第一個庫 move myString 1 將當前的數(shù)據(jù)庫key移動到某個數(shù)據(jù)庫,目標庫有,則不能移動 flush db 清除指定庫 randomkey 隨機key type key 類型 set key1 value1 設(shè)置key get key1 獲取key mset key1 value1 key2 value2 key3 value3 mget key1 key2 key3 del key1 刪除key exists key 判斷是否存在key expire key 10 10過期 pexpire key 1000 毫秒 persist key 刪除過期時間
string set name cxx get name getrange name 0 -1 字符串分段 getset name new_cxx 設(shè)置值,返回舊值 mset key1 key2 批量設(shè)置 mget key1 key2 批量獲取 setnx key value 不存在就插入(not exists) setex key time value 過期時間(expire) setrange key index value 從index開始替換value incr age 遞增 incrby age 10 遞增 decr age 遞減 decrby age 10 遞減 incrbyfloat 增減浮點數(shù) append 追加 strlen 長度 getbit/setbit/bitcount/bitop 位操作 hash hset myhash name cxx hget myhash name hmset myhash name cxx age 25 note "i am notes" hmget myhash name age note hgetall myhash 獲取所有的 hexists myhash name 是否存在 hsetnx myhash score 100 設(shè)置不存在的 hincrby myhash id 1 遞增 hdel myhash name 刪除 hkeys myhash 只取key hvals myhash 只取value hlen myhash 長度 list lpush mylist a b c 左插入 rpush mylist x y z 右插入 lrange mylist 0 -1 數(shù)據(jù)集合 lpop mylist 彈出元素 rpop mylist 彈出元素 llen mylist 長度 lrem mylist count value 刪除 lindex mylist 2 指定索引的值 lset mylist 2 n 索引設(shè)值 ltrim mylist 0 4 刪除key linsert mylist before a 插入 linsert mylist after a 插入 rpoplpush list list2 轉(zhuǎn)移列表的數(shù)據(jù) set sadd myset redis smembers myset 數(shù)據(jù)集合 srem myset set1 刪除 sismember myset set1 判斷元素是否在集合中 scard key_name 個數(shù) sdiff | sinter | sunion 操作:集合間運算:差集 | 交集 | 并集 srandmember 隨機獲取集合中的元素 spop 從集合中彈出一個元素 zset zadd zset 1 one zadd zset 2 two zadd zset 3 three zincrby zset 1 one 增長分數(shù) zscore zset two 獲取分數(shù) zrange zset 0 -1 withscores 范圍值 zrangebyscore zset 10 25 withscores 指定范圍的值 zrangebyscore zset 10 25 withscores limit 1 2 分頁 Zrevrangebyscore zset 10 25 withscores 指定范圍的值 zcard zset 元素數(shù)量 Zcount zset 獲得指定分數(shù)范圍內(nèi)的元素個數(shù) Zrem zset one two 刪除一個或多個元素 Zremrangebyrank zset 0 1 按照排名范圍刪除元素 Zremrangebyscore zset 0 1 按照分數(shù)范圍刪除元素 Zrank zset 0 -1 分數(shù)最小的元素排名為0 Zrevrank zset 0 -1 分數(shù)最大的元素排名為0 Zinterstore zunionstore rank:last_week 7 rank:20150323 rank:20150324 rank:20150325 weights 1 1 1 1 1 1 1 排序: sort mylist 排序 sort mylist alpha desc limit 0 2 字母排序 sort list by it:* desc by命令 sort list by it:* desc get it:* get參數(shù) sort list by it:* desc get it:* store sorc:result sort命令之store參數(shù):表示把sort查詢的結(jié)果集保存起來 訂閱與發(fā)布: 訂閱頻道:subscribe chat1 發(fā)布消息:publish chat1 "hell0 ni hao" 查看頻道:pubsub channels 查看某個頻道的訂閱者數(shù)量: pubsub numsub chat1 退訂指定頻道: unsubscrible chat1 , punsubscribe java.* 訂閱一組頻道: psubscribe java.* redis事物: 隔離性,原子性, 步驟: 開始事務(wù),執(zhí)行命令,提交事務(wù) multi //開啟事務(wù) sadd myset a b c sadd myset e f g lpush mylist aa bb cc lpush mylist dd ff gg 服務(wù)器管理 dump.rdb appendonly.aof //BgRewriteAof 異步執(zhí)行一個aop(appendOnly file)文件重寫 會創(chuàng)建當前一個AOF文件體積的優(yōu)化版本 //BgSave 后臺異步保存數(shù)據(jù)到磁盤,會在當前目錄下創(chuàng)建文件dump.rdb //save同步保存數(shù)據(jù)到磁盤,會阻塞主進程,別的客戶端無法連接 //client kill 關(guān)閉客戶端連接 //client list 列出所有的客戶端 //給客戶端設(shè)置一個名稱 client setname myclient1 client getname config get port //configRewrite 對redis的配置文件進行改寫 rdb save 900 1 save 300 10 save 60 10000
aop備份處理 appendonly yes 開啟持久化 appendfsync everysec 每秒備份一次 命令: bgsave異步保存數(shù)據(jù)到磁盤(快照保存) lastsave返回上次成功保存到磁盤的unix的時間戳 shutdown同步保存到服務(wù)器并關(guān)閉redis服務(wù)器 bgrewriteaof文件壓縮處理(命令) 注意:哨兵、讀寫分離、集群、抗壓測試、主從架構(gòu)這些都是重點問題 來源:https://www./content-2-432401.html
|