Redis -- 介紹

1、NoSQL:

????????指的是非關系型數據庫,主要分成四大類:鍵值存儲數據庫、列存儲數據庫、文檔型數據庫、圖形數據庫。

2、什么是Redis:

????????Redis是一種基于內存的數據庫,一般用于做緩存的中間件。

3、Redis的主要的特點:

????????1、Rdis的是一個高性能的內存數據庫,數據是以鍵值對的形式存儲在數據庫中。

????????2、Redis可以持久化,主要使用過 AOF和快照來保證數據的持久化。

????????3、Redis支持多種數據類型的存儲結構,有String、List、set、zset、hash五種存儲結構。

????????4、Redis是單線程,由于是單線程作業,所以線程是安全的。

4、Redis中常見的一些命令:
1、刪除Redis中一個或者是多個key,不存在的key會跳過,多個key之間通過空格隔開del key[ key .... ]      返回的是被刪除key的數量2、判斷Redis中某個key是否存在,檢查給定key 是否存在。多個key之間使用空格隔開,只要有一個key存在,返回值就是1exists key     返回的是存在的個數,如果key存在。3、對已經存在的key設置一個過期的時間,當時間一到key就會被刪除:expire key  seconds  設置成功返回值是14、找出指定格式的key:keys pattern   查出所有的指定模式的key,KEYS * 匹配數據庫中所有key 。
KEYS h?llo 匹配hello ,hallo 和hxllo 等。
KEYS h*llo 匹配hllo 和heeeeello 等。
KEYS h[ae]llo 匹配hello 和hallo ,但不匹配hillo 。特殊符號用 "\" 隔開
- 返回值: 符合給定模式的key 列表。5、move :將當前數據庫中的key移動到指定的數據庫中move  key  db  將指定的key移動到db數據庫中,成功就返回1,失敗就返回0.6、切換數據庫:select  數據庫的編號(默認是0開始的。默認到15)7、pexpire  作用也是給key設置一個過期時間,但是是毫秒級別的。
PEXPIRE key milliseconds
設置成功,返回1  key 不存在或設置失敗,返回08、pexpireat  
- 語法 :  PEXPIREAT key milliseconds-timestamp
- 作用 :  這個命令和EXPIREAT 命令類似,但它以毫秒為單位設置key 的過期unix 時間戳,而不是像EXPIREAT那樣,以秒為單位。返回值:如果生存時間設置成功,返回1 。當key 不存在或沒辦法設置生存時間時,返回0 9、TTL
- 語法 :   TTL key
- 作用 :   以秒為單位,返回給定key 的剩余生存時間(TTL, time to live)。
- 返回值:當key 不存在時,返回-2 。當key 存在但沒有設置剩余生存時間時,返回-1 。否則,以秒為單位,返回key 的剩余生存時間。
- Note : 在Redis 2.8 以前,當key 不存在,或者key 沒有設置剩余生存時間時,命令都返回-1 。10、PTTL
- 語法 :  PTTL key
- 作用 :  這個命令類似于TTL 命令,但它以毫秒為單位返回key 的剩余生存時間,而不是像TTL 命令那樣,以秒為單位。
- 返回值: 當key 不存在時,返回-2 。當key 存在但沒有設置剩余生存時間時,返回-1 。
- 否則,以毫秒為單位,返回key 的剩余生存時間。
- 注意 : 在Redis 2.8 以前,當key 不存在,或者key 沒有設置剩余生存時間時,命令都返回-1 。11、RANDOMKEY
- 語法 :  RANDOMKEY
- 作用 :  從當前數據庫中隨機返回(不刪除) 一個key 。
- 返回值:當數據庫不為空時,返回一個key 。當數據庫為空時,返回nil 。12、RENAME
- 語法 :  RENAME key newkey
- 作用 :  將key 改名為newkey 。當key 和newkey 相同,RENAME 命令將覆蓋舊值。如果鍵不存在,才報錯
- 返回值: 改名成功時提示OK ,失敗時候返回一個錯誤。13.TYPE
- 語法 :  TYPE key
- 作用 :  返回key 所儲存的值的類型。
- 返回值:none (key 不存在)string (字符串)list (列表)set (集合)zset (有序集)hash (哈希表)
5、Redis中常見的存儲結構:
1、String存儲結構

常用的一些命令:

set設置一個key/value
get根據key獲得對應的value
mset一次設置多個key value
mget一次獲得多個key的value
getset獲得原始key的值,同時設置新值
strlen獲得對應key存儲value的長度
append為對應key的value追加內容
getrange 索引0開始截取value的內容    到末尾-1  [開始,結束]
setex設置一個key存活的有效期(秒)
psetex設置一個key存活的有效期(毫秒)
setnx存在不做任何操作,不存在添加
msetnx原子操作(只要有一個存在不做任何操作)可以同時設置多個key,只有有一個存在都不保存
decr進行數值類型的-1操作
decrby根據提供的數據進行減法操作
Incr進行數值類型的+1操作
incrby根據提供的數據進行加法操作
Incrbyfloat根據提供的數據加入浮點數(不是四舍五入)
2、set存儲結構

特點: Set類型 Set集合 元素無序 ?不可以重復

sadd為集合添加元素
smembers顯示集合中所有元素 無序
scard返回集合中元素的個數
spop隨機返回一個元素 并將元素在集合中刪除
smove從一個集合中向另一個集合移動元素  必須是同一種類型
srem從集合中刪除一個元素
sismember判斷一個集合中是否含有這個元素
srandmember隨機返回元素   后面可以加數字 表示每次返回的個數
sdiff去掉第一個集合中其它集合含有的相同元素
sinter求交集
sunion求和集
3、List存儲結構

特點:list 列表 相當于java中list 集合 特點 元素有序(插入和取出的順序一致) 且 可以重復,key還是一個字符串,值是一個

lpush將某個值加入到一個key列表頭部  lpush list1 xiaohu xiaohei xiaoming    當列表不存在的時候會進行創建
lpushx同lpush,但是必須要保證這個key存在  必須在列表進行存在的情況下從左插入
rpush將某個值加入到一個key列表末尾
rpushx同rpush,但是必須要保證這個key存在
lpop返回和移除列表左邊的第一個元素rpop返回和移除列表右邊的第一個元素
lrange獲取某一個下標區間內的元素   lrange list 0 -1
llen獲取列表元素個數
lset設置某一個指定索引的值(索引必須存在)
lindex獲取某一個指定索引位置的元素
lrem刪除重復元素
ltrim保留列表中特定區間內的元素
linsert在某一個元素之前,之后插入新元素
4、zset存儲結構

特點: 可排序的set集合 排序 不可重復

zadd添加一個有序集合元素     zadd zset 2 xiaohu 3 xiaohu2
zcard返回集合的元素個數
zrange 升序 
zrevrange 降序返回一個范圍內的元素,如果想看看分數 withscores
zrangebyscore 按照分數查找一個范圍內的元素,zrangebyscore zset 0 20 withscores limit 0 2
zrank返回排名
zrevrank倒序排名
zscore顯示某一個元素的分數
zrem移除某一個元素
zincrby給某個特定元素加分
5、hash存儲結構

特點: value 是一個map結構 存在key value key 無序的

hset設置一個key/value對
hget獲得一個key對應的value
hgetall獲得所有的key/value對
hdel刪除某一個key/value對
hexists判斷一個key是否存在
hkeys獲得所有的keyhvals獲得所有的value
hmset設置多個key/valuehmget獲得多個key的value
hsetnx設置一個不存在的key的值
hincrby為value進行加法運算(只能針對數值做運行)
hincrbyfloat為value加入浮點值

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/168057.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/168057.shtml
英文地址,請注明出處:http://en.pswp.cn/news/168057.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++ 多線程鎖

目錄 1. mutex2. lock_guard3. unique_lock 是 lock_guard 的升級加強版4. condition_variable5. 調用 #include “thread” #include “mutex” #include “iostream” //! std::thread //! jion 阻塞式, .join()后面的代碼等待線程結束 //! detach 非阻塞式&#…

一、TIDB基礎

TIDB整個邏輯架構跟MYSQL類似,如下: TIDB集群:相當于MYSQL的數據庫服務器,區別是MYSQL數據庫服務器為單進程的,TIDB集群為分布式多進程的。 數據庫:同MYSQL數據庫,數據庫屬于集群,…

SSL握手失敗的解決方案

一、SSL握手失敗的原因: 1,證書過期:SSL證書有一個有效期限,如果證書過期,就會導致SSL握手失敗。 2,證書不被信任:如果網站的SSL證書不被瀏覽器或操作系統信任,也會導致SSL握手失敗…

線性代數的藝術

推薦一本日本網友Kenji Hiranabe寫的《線性代數的藝術》。這本書是基于MIT大牛Gilbert Strang教授的《每個人的線性代數》制作的。 雖然《線性代數的藝術》這本書僅僅只有12頁的內容,就把線性代數的重點全畫完了,清晰明了。 《線性代數的藝術》PDF版本&…

mysql 變量和配置詳解

MySQL 中還有一些特殊的全局變量,如 log_bin、tmpdir、version、datadir,在 MySQL 服務實例運行期間它們的值不能動態修改,也就是不能使用 SET 命令進行重新設置,這種變量稱為靜態變量。數據庫管理員可以使用前面提到的修改源代碼…

nodejs 將word轉為pdf office-to-pdf

jspdf用于html轉pdf。需借助html2canvas遍歷頁面中的dom節點,渲染成canvas image,再用jspdf把圖片轉為pdf。office-to-pdf 用于word轉pdf。依賴于libreOffice,需提前安裝 mac安裝libreOffice 1.首先需要jdk8,并配置環境變量 2.再就是需要安裝libreOf…

【Golang】使用泛型對數組進行去重

背景: 要求寫一個方法,返回去重后的數組。數組的類型可能是int64,也可能是string,或是其他類型。 如果區分類型的話,每增加一個新的類型都需要重新寫一個方法。 示例代碼: //對int64數組進行去重 func DeD…

ErphpdownV16.21插件 安裝教程和插件下載

ErphpdownV16.21插件下載_新版本 上傳插件并解壓 登入后臺插件管理啟動ErphpdownV16.21插件即可 啟動后設置即可使用此版本為學習版插件 功能介紹: Erphpdown會員推廣下載專業版 經過完美測試運行于wordpress 3.x-6.x版本。后續會增加更多實用的功能。已針對此插件…

Vue中學習筆記-數據代理

文章目錄 前文提要數據代理的概念MVVM模型和Vue中的數據代理M,模型V,視圖VM,視圖模型 前文提要 本人僅做個人學習記錄,如有錯誤,請多包涵 數據代理的概念 使用一個對象代理對另一個對象中屬性的操作。 MVVM模型和Vu…

Windows IDEA Python開發環境安裝+爬蟲示例

文章目錄 Python下載安裝開發工具IDEA包管理安裝pip基本用法從 requirements.txt 安裝依賴 項目示例部署在 Linux 上安裝Python在 Linux 上創建虛擬環境:安裝依賴:運行你的爬蟲 Python下載安裝 Python 安裝包下載地址:https://www.python.or…

Oracle登錄認證方式詳解

文章目錄 一、簡介二、OS認證三、口令認證四、remote_login_passwordfile 詳解 一、簡介 在數據庫管理中,登錄認證是確保數據庫安全性的重要環節。Oracle數據庫提供 了兩種認證方式,一種是“操作系統認證”,一種是“口令文件認證&#xff0c…

智安網絡|如何最大限度地提高企業網絡安全水平

在當今數字化時代,企業面臨著日益復雜和智能化的網絡威脅。為了保護企業的機密信息和客戶數據,漏洞掃描成為了一個至關重要的安全措施。然而,對于企業來說,他們最關心的是什么問題呢? 一、漏洞的發現和修復 在網絡安全…

路徑規劃之Best-First Search算法

系列文章目錄 路徑規劃之Dijkstra算法 路徑規劃之Best-First Search算法 路徑規劃之Best-First Search算法 系列文章目錄前言一、Best-First Search算法1.1 起源1.2 過程 三、簡單使用 前言 Best-First Search算法和Dijkstra算法類似,都屬于BFS的擴展或改進 一、…

Nginx 服務器 SSL 證書安裝部署

操作場景 本文檔以證書名稱 menglinfeng.top 為例。 Nginx 版本以 nginx/1.18.0 為例。 當前服務器的操作系統為 CentOS 7,由于操作系統的版本不同,詳細操作步驟略有區別。 安裝 SSL 證書前,請您在 Nginx 服務器上開啟 “443” 端口&#xf…

基于官方YOLOv4開發構建目標檢測模型超詳細實戰教程【以自建缺陷檢測數據集為例】

本文是關于基于YOLOv4開發構建目標檢測模型的超詳細實戰教程,超詳細實戰教程相關的博文在前文有相應的系列,感興趣的話可以自行移步閱讀即可:《基于yolov7開發實踐實例分割模型超詳細教程》 《YOLOv7基于自己的數據集從零構建模型完整訓練、…

springboot(ssm超市貨品信息管理系統 超市購物系統Java(codeLW)

springboot(ssm超市貨品信息管理系統 超市購物系統Java(code&LW) 開發語言:Java 框架:ssm/springboot vue JDK版本:JDK1.8(或11) 服務器:tomcat 數據庫:mysql 5.7(或8.0&am…

Linux技能篇-非交互式修改密碼

今天的文章沒有格式,簡單分享一個小技能,就是標題所說–非交互式修改密碼。 一、普通方式修改用戶密碼 最普通的修改密碼的命令就是passwd命令 [rootlocalhost ~]# passwd root Changing password for user root. New password: Retype new password:…

一文徹底看懂Python切片,Python切片理解與操作

1.什么是切片 切片是Python中一種用于操作序列類型(如列表、字符串和元組)的方法。它通過指定起始索引和結束索引來截取出序列的一部分,形成一個新的序列。切片是訪問特定范圍內的元素,就是一個Area。 說個笑話:切片不是切片,而是切片,但是又是切片。大家理解下呢(末…

高防cdn防護原理是什么,是否可以防護服務器嗎

隨著互聯網業務的迅速發展,網絡安全問題日益凸顯。在這樣的背景下,高防CDN作為一種有效的網絡安全解決方案,受到了越來越多的關注。那么高防CDN的防護原理是什么呢?接下來就跟小德一起深入了解下吧! 1. 高防CDN的基本概念 我們要明確什么是…

【云原生 Prometheus篇】Prometheus的動態服務發現機制

自動發現 一、Prometheus服務發現 理論部分1.1 Prometheus數據采集配置1.2 基于文件的服務發現1.3 基于consul的服務發現1.4 基于 Kubernetes API 的服務發現1.4.1 概念1.4.2 部分配置參數1.4.3 配置模板 二、實例一:部署基于文件的服務發現2.1 創建用于服務發現的文…