Redis的基本知識01

2021-10-04 01:52:27 字數 2561 閱讀 9482

1什麼是redis

redis是乙個基於記憶體的,使用c語言開發的 key-value的 nosql 的資料庫

nosql:1 沒有sql ,不支援sql

2 不僅僅只有sql(不做複雜查詢,做簡單查詢)

redis運用到哪些場景

1 對資料高併發的讀寫(一定量)

2 對資料高可擴充套件性能

3 速度夠快,能夠快速的儲存資料

詳細具體方面

1 取最新n個資料的 操作 (比如獲取訂單的前10個)

2 取top n操作(比如獲取交易金額最大的5個)

3 需要精準設定過期的場景(客戶租車,這段時間需要,過了這段時間就不需要了)

4 計數器應用(計算多少個人)

5pub/sub構建實時系統

6快取資料(快取的是熱資料)

7構建佇列系統(yarn的三種排程器)

不實用的場景

需要事務支援

基於sql的結構化查詢儲存,處理複雜關係,需要急需查詢

熱資料: 經常被使用到的資料,訪問頻繁較高的資料為熱資料

口袋 ,書包(經常用到的東西裝起來)

nosql 的舉例

1 mencache 比較早的資料庫,不支援持久化,目前使用的很少

2 redis 覆蓋了mencache幾乎所有的功能,支援資料持久化,支援多種結構化的資料

3 mongodb 也是key-value模式, 對value進行了很多優化,在部分場景中可以取代關係型資料庫

4 hbase 海量資料,精準查詢,快速返回

redis 資料庫的特點

1 高效性 : 讀的速度110000次/s, 寫的速度是81000 次/s

2 原子性: redis的所有操作都是原子性,不能在細化

3支援多種資料結構: string (字串) list(列表) hash(雜湊),set(集合)

4 穩定性強: 支援資料持久化,支援主從結構的資料備份

5 支援資料有效期,支援訂閱

redis的安裝

bind node01    		# redis繫結到哪個節點上

daemonize yes # 改為yes 可以在後台執行

pidfile /var/run/redis_6379.pid # 這個不需要改,每個任務在進行時,都有程序號,寫到這個檔案裡

logfile "/export/servers/redis-3.2.8/logs/redis.log" # 必須是檔案,不能是目錄

dir /export/servers/redis-3.2.8/redisdata

5.2啟動redis

成功進入客戶端

redis中資料型別

redis 文件

string

增1 set key value 設定乙個字串

2 mset key1 value1 key2 value2 一次設定多個 key value

3 setex key x(多少秒) value(值) 設定乙個變數的生命週期

4 setnx key value 當變數不存在時,可以設定

查1 get key 查詢字串的值

2 getrange key start end 查詢字串部分(開始索引和結束索引)

3 mget key1 key2 key3 查詢多個key 的value值

4 strlen key 查詢字串的長度

刪del key 對已存在的變數進行刪除

其他1 getset key value(new) 先獲取然後在修改

2 setrange key offer(偏移量開始改的位置) xx (修改幾個替換幾個) 輸入的內容多於裡面的就全部替換

1 incr key 累加 1

2 incrby key n 累加n (n是多少就加多少)

3 incrbyfloat key 累加小數

4 decr key 減一

decrby 減n(n是多少就減多少)

hash

增1 hest key1 key2 value 設定乙個key value

2 hsetnx key1 key2 value2 這個變數不存在時可以新增

3 hmset key1 key2 value2 key3 value3 key4 value4

查hget key1 key2 獲取乙個變數的值

hexists key1 key2 檢視這個是否存在

hgetall key 檢視這個變數的所有值

hkeys key(最外) 查詢這個變數所有的key

hlen key 查詢key的長度

hmget key1 keyn 查詢 某乙個key的值

改hset key1 key2 value(更新的值) 修改value的值

刪del key 刪除key 這個變數

其他hincrby key1 key2 n 累加這個值

hincrbyfloat key1 key2 n(小數) 累加小數

redis基本知識

sds字串的優點 杜絕緩衝區溢位 在c語言中,新增字串都會假設儲存的長度能足夠的容納新增的字串,然而新增長度一旦超過了儲存的長度,就會存在緩衝區溢位,使得新增的字串被擷取,導致新增字串內容丟失。減少修改字串時帶來的記憶體重分配次數 c語言中,字串本身並不記錄自身的長度,而字串的底層實現總是乙個n 1...

Redis基本知識

redis 是什麼?redis remote dictionary server 即遠端字典服務 使用ansi c語言編寫 支援網路 可基於記憶體亦可持久化的日誌型 key value資料庫,並提供多種語言的api。免費,開源,是當下最熱門的 nosql 技術之一。redis 可以做什麼?redis...

redis基本知識

redis預設有16個資料庫 預設使用第0個 使用select切換資料庫 dbsize檢視大小 keys 檢視資料庫所有的key flushdb清除當前資料庫 flushall清除全部資料庫 redis是單執行緒的基於記憶體操作 核心 redis是將所有的資料庫全部放在記憶體中,所以使用單執行緒去操...