Redis數據庫的介紹、安裝、數據結構、常用命令

1、 redis是什麼呢?

redis是非關係型數據庫(nosql),基於內存讀寫的數據庫,採用key-value的方式存儲數據
nosql: not noly sql ,沒有表的SQL

在目前的企業開發中會用關係型數據庫(Oracale+MySQL)+非關係型數據庫(Redis 、MongoDB、Memcache)共同開發項目

爲什麼使用NoSQL

現在存在數據格式非常多樣,不適合應用表格進行存儲。
表格數據稱之爲 結構化數據
非表格數據稱之爲 半結構化 (kv json) 非結構化數據 音頻 視頻

Redis是基於內存讀寫的數據庫,
硬盤讀取速度 大約幾百M
內存讀取速度 大約 上千M
所以Redis相對來說是要比關係型數據庫要快很多

Redis的應用場景:查詢讀取操作非常頻繁的業務
例如:緩存

2、Redis的下載安裝

Redis可從
https://redis.io/download
官網進行下載,有windows版和linux版,
都是下載直接解壓就可使用
在這裏插入圖片描述
解壓後的目錄如下:
在這裏插入圖片描述
不過需要注意的是:
在windows系統上,我們要修改redis.windows.conf這個文件,將appendonly no改爲appendonly yes
因爲redis是忘往內存上面存儲數據的,改完這個可以使數據直接同步到硬盤上。
在這裏插入圖片描述
而啓動的時候也不要雙擊redis-server.exe進行啓動,因爲這樣啓動是不能加載到redis.windows.conf這個配置文件的,
所以啓動的時候我們要在redis解壓的目錄下進入cmd,
輸入:redis-server redis.windows.conf 啓動redis服務
如圖所示:
在這裏插入圖片描述
這樣就啓動了Redis服務,再雙擊redis-cli.exe就啓動了Redis的客戶端

Linux系統下啓動Redis服務要進到解壓目錄的src下,
輸入./redis-server …/redis.conf
進行啓動,如圖所示:
在這裏插入圖片描述

3、Redis的數據結構、常用命令

redis數據庫存儲數據使用的key-value
key是string類型 value的數據結構支持5個string、set、sorted_set、list、hash

value最大佔用空間 1GB
redis支持的數據結構比較豐富、對不同的數據結構,還擁有不同的操作命令

set、get、del
keys * 打印所有的key

基礎命令 (key value)

keys *

命令的作用:顯示redis中 所有的key
keys name* name後面可以有0—多個任意字符
keys name? name後面必須只存在一個字符

exists key
判斷 key是否存在 若返回 1 則存在 0 不存在

del key
作用:刪除 某一個key

help 命令
幫助命令

flushall 清空所有數據庫中的內容

退出 exit|quit 退出redis的服務器

Redis中值是字符串類型 (String 數字)

在這裏插入圖片描述
set
用於設置 一個字符串類型的 key value

get
根據key獲取值

mset
一次性設置多個 key value

mget
strlen
append
getrange 截取子串
getrange name 0 3
setex 設置一個key的存活有效期 (秒) psetex 作用與 setex 一致 但是毫秒
setnx
如果當前沒有這個key的話 那麼 setnx等價於 set命令
如果當前存在這個key的話 那麼 setnx不起作用
decr 針對數字類型 做 -1操作 另外 desr key 數字 根據數字做減法操作
incr incrby incrbyfloat

應用場景:緩存查詢結果(json或者序列化) 用戶訪問記錄 例如:通過記錄ip-訪問次數來顯示ip的訪問
統計粉絲數、點擊次數、點贊

Redis中值是set類型在這裏插入圖片描述

c) List類型的數據操作的命令

在這裏插入圖片描述
i. lpush 棧式結構
lpush name suns[2]
lpush name xiaohei[1]
lpush name xiaowb[0]
ii. lpushx 如果操作的key不存在 則不起作用
如果操作的key存在 則等同於lpush
iii. rpush 操作的內容 等效 java List
第一個操作的元素 就放置在第一個位置
依次類推
應用場景:關注列表、消息隊列

hash類型的數據操作的命令

在這裏插入圖片描述

zset (sorted_set)類型的數據操作的命令

在這裏插入圖片描述

7. Redis命令的補充部分

a) 只有set命令 可以操作 任意類型的數據

b) 注意Redis中會有數據庫概念 默認存在16數據庫 0 ---- 15

默認所使用的數據庫 0 如果要選擇使用別的數據庫 select 編號

注意:不同數據庫所創建的key 相互隔離 互補干擾的。通過flushall 清空的是所有數據庫中的key. 清空當前的數據庫 flushdb這個命令
如何該表Redis中對於數據庫的支持呢?編輯 redis.conf

** expire相關命令 (促銷 秒殺 手機驗證碼倒計時 排行榜 Cache)**
i. 在Redis創建key value 默認都是持久化的 永久保存。
ii. 可以通過expire 命令 指定 key 存活時間
expire key seconds

查看某一個key的存活時常
persist 作用 可以把 一個應用了expire命令key 再次轉換持久化的key
expireat key unix 時間戳 毫秒數iii.

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章