學習筆記——NoSQL資料庫;Redis概述;redis中常用的數據類型(key、string)

来源:https://www.cnblogs.com/isDaHua/archive/2023/01/25/17066452.html
-Advertisement-
Play Games

2023-01-24 一、NoSQL資料庫 1、NoSQL資料庫的簡介 NoSQL(NoSQL=Not Only SQL),即“不僅僅是SQL”,泛指非關係型的資料庫。NosQL不依賴業務邏輯方式存儲,而以簡單的key-value模式存儲。因此大大的增加了資料庫的擴展能力。 (1)不遵循SQL標準 ...


2023-01-24

一、NoSQL資料庫

1、NoSQL資料庫的簡介

NoSQL(NoSQL=Not Only SQL),即“不僅僅是SQL”,泛指非關係型的資料庫。NosQL不依賴業務邏輯方式存儲,而以簡單的key-value模式存儲。因此大大的增加了資料庫的擴展能力。

(1)不遵循SQL標準

(2)不支持ACID。(原子、一致、隔離、持久)

(3)遠超於SQL的性能

2、NoSQL適用場景

(1)對數據高併發的讀寫

(2)海量數據的讀寫

(3)對數據高可擴展的

3、NoSQL不適用場景

(1)需要事務支持

(2)基於sql的結構化查詢存儲,處理複雜的關係。

4、非關係型資料庫

(1)Memcache

①不支持持久化

②支持類型單一

③一般是作為緩存資料庫輔助持久化的資料庫

(2)Redis

①支持持久化

②支持多種數據結構的存儲,比如list、set、hash、zset

③一般是作為緩存資料庫輔助持久化的資料庫

(3)MongDB

①高性能、開源、模式自由的文檔型資料庫

②數據都在記憶體中,如果記憶體不足,吧不常用的數據保存到硬碟

③雖然是key-value模式,但是對value(尤其是json)提供了豐富的查詢功能

④支持二進位數據及大型對象

⑤可以根據數據的特點替代RDBMS,成為獨立的資料庫。或者配合RDBMS,存儲特定的數據。

2023-01-25

一、Redis概述

1、Redis概述

(1)Redis是一個開源的key-value存儲系統。

(2)Redis(Remote Dictionary Service):遠程字典服務,Redis是一個開源的使用ANSIC語言編寫、支持網路、可基於記憶體亦可持久化的日誌型、key-value資料庫(NoSQL),並提供多種語言的API。實際開發中,主要時用來做緩存,加快查詢效率。

(3)支持存儲的value類型相對更多,包括string(字元串)、list(列表)、set(集合)、zset(有序集合)和hash(哈希類型)

(4)這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。

(5)在此基礎上,Redis支持各種不同方式的排序。

(6)為了保證效率,數據都是緩存在記憶體中。

(7)redis會周期性的把更新的數據寫入磁碟或者把修改操作寫入追加的記錄文件。

(8)並且在此基礎上實現了master-slave(主從)同步。

2、Redis的下載路徑

http://redis.cn/

二、redis中常用的數據類型

1、Redis鍵(key)

(1)查看當前庫所有key

keys *

(2)判斷某個key是否存在

exists key

(3)查看存儲的key是什麼類型

type key

(4)刪除指定的key數據

del key

(5)根據value選擇非阻塞刪除

僅將keys從keyspace元數據中刪除,真正的刪除會在後續非同步操作

unlink key

(6)為給定的key設置過期時間(單位是秒)

expire key 10

(7)查看還有多少秒過期,-1表示永不過期,-2表示已過期

ttl key

(8)命令切換資料庫

select 數字(一共有16個庫,從0-15)

(9)查看當前資料庫的key的數量

dbsize

(10)清空當前庫

flushdb

(11)通殺全部庫

flushall

2、Redis字元串(String)

String類型是二進位安全的。即redis中的string可以包含任何數據。

string類型是redis最基本的數據類型,一個redis中字元串value最多可以是512M。

(1)將字元串值value關聯到key

set key值 value值

(2)查詢對應鍵值

get key值

(3)將給定的value值追加到原值的末尾

append key值  value值

(4)獲得值的長度

strlen key值

(5)只有在key不存在時,設置key的值

setnx  key值  value值

(6)將key中儲存的數字值增1。只能對數字值操作,如果為空,新增值為1。

incr  key值

(7)將key中儲存的數字值減1。只能對數字值操作,如果為空,新增值為-1。

decr key值

(8)將key中儲存的數字值增減。自定義步長。

incrby /decrby

(9)同時設置一個或多個key-value對

mset key1 value1 key2 value2 ...

(9)同時獲取一個或多個value

mget key1 key2 ...

(10)同時設置一個或多個key-value對,當且僅當所有給定key都不存在

msetnx key1 value1 key2 value2 ...

(11)獲得值的範圍,類似於java中的substring ,前包,後包

getrange key 起始位置 結束位置

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 簡介: 組合模式,屬於結構型的設計模式。將對象組合成樹形結構以表示“部分-整體”的層次結構。組合模式使得用戶對單個對象和組合對象的使用具有一致性。 組合模式分兩種狀態: 透明方式,子類的所有介面一致,使其葉子節點和枝節點對外界沒有區別。 安全方式,子類介面不一致,只實現特定的介面。 適用場景: 希望 ...
  • AOP-02 4.問題提出 在上一篇的MyProxyProvider類中,我們的輸出語句功能比較弱,在實際開發中,我們希望是以一個方法的形式,嵌入到真正執行的目標方法前,怎麼辦? 1.使用土方法解決 需求分析:使用土方法解決前面的問題,後面使用spring的aop組件完成 改進MyProxyProv ...
  • 2023-01-24 一、搜索查找類命令 1、find命令 (1)find -name "*.txt" (功能描述:查找當前目錄下包含“.txt”的文件) 2、grep過濾查找及“|”管道符 管道符,“|”,表示將前一個命令的處理結果輸出傳遞給後面的命令處理 (1)ll | grep -n test ...
  • 前言 對於一個懶懶的,不想寫高精的人(就是我),每次都會遭遇到答案爆$long$ $long$的危險 比如說這道題: 題目傳送門 最後的$23-25$的兩個點,$long$ $long$甚至$unsigned$ $long$ $long$都無法滿足,難道真的要手打高精度了嗎? 不,我們有$\_$$\ ...
  • 2023-01-24 一、CentOS中的時間日期類命令 1、date顯示當前時間 (1)date (功能描述:顯示當前時間) (2)date + %Y (功能描述:顯示當前年份) (3)date + %m (功能描述:顯示當前月份) (4)date + %d (功能描述:顯示當前是哪一天) (5) ...
  • 2023-01-24 一、幫助命令 1、基本語法 man[命令或配置文件] 功能描述:獲得幫助信息 2、顯示說明 (1)NAME:命令的名稱和單行描述 (2)SYNOPSIS:怎樣使用命令 (3)DESCRIPTION:命令功能的深入討論 (4)EXAMPLES:怎樣使用命令的例子 (5)SEE A ...
  • 這篇文章主要關註服務發現,會討論基於DNS、VIP、ZooKeeper以及消息匯流排的服務發現機制,研究出在服務發現需要AP還是CP。 ...
  • 測試網站是本人學校,費話不多說下麵開始 首先直接導庫,過程中需要時間戳,rsa加密 import requests import re import time from Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_v1_5 ...
一周排行
    -Advertisement-
    Play Games
  • 背景 在瀏覽器中訪問本地靜態資源html網頁時,可能會遇到跨域問題如圖。 是因為瀏覽器預設啟用了同源策略,即只允許載入與當前網頁具有相同源(協議、功能變數名稱和埠)的內容。 WebView2預設情況下啟用了瀏覽器的同源策略,即只允許載入與主機相同源的內容。所以如果我們把靜態資源發佈到iis或者通過node ...
  • 最近看幾個老項目的SQL條件中使用了1=1,想想自己也曾經這樣寫過,略有感觸,特別拿出來說道說道。編寫SQL語句就像炒菜,每一種調料的使用都會影響菜品的最終味道,每一個SQL條件的加入也會影響查詢的執行效率。那麼 1=1 存在什麼樣的問題呢?為什麼又會使用呢? ...
  • 好久不見,我又回來了。 給大家分享一個我最近使用c#代碼操作ftp伺服器的代碼示例: 1 public abstract class FtpOperation 2 { 3 /// <summary> 4 /// FTP伺服器地址 5 /// </summary> 6 private string f ...
  • 一:背景 1. 講故事 過年喝了不少酒,腦子不靈光了,停了將近一個月沒寫博客,今天就當新年開工寫一篇吧。 去年年初有位朋友找到我,說他們的系統會偶發性崩潰,在網上也發了不少帖子求助,沒找到自己滿意的答案,讓我看看有沒有什麼線索,看樣子這是一個牛皮蘚的問題,既然對方有了dump,那就分析起來吧。 二: ...
  • 自己製作的一個基於Entity Framework Core 的資料庫操作攔截器,可以列印資料庫執行sql,方便開發調試,代碼如下: /// <summary> /// EF Core 的資料庫操作攔截器,用於在資料庫操作過程中進行日誌記錄和監視。 /// </summary> /// <remar ...
  • 本文分享自華為雲社區《Go併發範式 流水線和優雅退出 Pipeline 與 Cancellation》,作者:張儉。 介紹 Go 的併發原語可以輕鬆構建流數據管道,從而高效利用 I/O 和多個 CPU。 本文展示了此類pipelines的示例,強調了操作失敗時出現的細微之處,並介紹了乾凈地處理失敗的 ...
  • 在上篇文章中,我們介紹到在多線程環境下,如果編程不當,可能會出現程式運行結果混亂的問題。出現這個原因主要是,JMM 中主記憶體和線程工作記憶體的數據不一致,以及多個線程執行時無序,共同導致的結果。 ...
  • 1、下載安裝包首先、進入官網下載安裝包網址:https://www.python.org/downloads/windows/下載步驟:進入下載地址,根據自己的電腦系統選擇相應的python版本 選擇適配64位操作系統的版本(查看自己的電腦操作系統版本), 點擊下載安裝包 也可以下載我百度雲分享的安 ...
  • 簡介 git-commit-id-maven-plugin 是一個maven 插件,用來在打包的時候將git-commit 信息打進jar中。 這樣做的好處是可以將發佈的某版本和對應的代碼關聯起來,方便查閱和線上項目的維護。至於它的作用,用官方說法,這個功能對於大型分散式項目來說是無價的。 功能 你 ...
  • 序言 在數字時代,圖像生成技術正日益成為人工智慧領域的熱點。 本討論將重點聚焦於兩個備受矚目的模型:DALL-E和其他主流AI繪圖方法。 我們將探討它們的優勢、局限性以及未來的發展方向。通過比較分析,我們期望能夠更全面地瞭解這些技術,為未來的研究和應用提供啟示。 Q: 介紹一下 dall-e Ope ...