學習筆記——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
  • 前言 在我們開發過程中基本上不可或缺的用到一些敏感機密數據,比如SQL伺服器的連接串或者是OAuth2的Secret等,這些敏感數據在代碼中是不太安全的,我們不應該在源代碼中存儲密碼和其他的敏感數據,一種推薦的方式是通過Asp.Net Core的機密管理器。 機密管理器 在 ASP.NET Core ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 順序棧的介面程式 目錄順序棧的介面程式頭文件創建順序棧入棧出棧利用棧將10進位轉16進位數驗證 頭文件 #include <stdio.h> #include <stdbool.h> #include <stdlib.h> 創建順序棧 // 指的是順序棧中的元素的數據類型,用戶可以根據需要進行修改 ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • C總結與剖析:關鍵字篇 -- <<C語言深度解剖>> 目錄C總結與剖析:關鍵字篇 -- <<C語言深度解剖>>程式的本質:二進位文件變數1.變數:記憶體上的某個位置開闢的空間2.變數的初始化3.為什麼要有變數4.局部變數與全局變數5.變數的大小由類型決定6.任何一個變數,記憶體賦值都是從低地址開始往高地 ...
  • 如果讓你來做一個有狀態流式應用的故障恢復,你會如何來做呢? 單機和多機會遇到什麼不同的問題? Flink Checkpoint 是做什麼用的?原理是什麼? ...
  • C++ 多級繼承 多級繼承是一種面向對象編程(OOP)特性,允許一個類從多個基類繼承屬性和方法。它使代碼更易於組織和維護,並促進代碼重用。 多級繼承的語法 在 C++ 中,使用 : 符號來指定繼承關係。多級繼承的語法如下: class DerivedClass : public BaseClass1 ...
  • 前言 什麼是SpringCloud? Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的開發便利性簡化了分散式系統的開發,比如服務註冊、服務發現、網關、路由、鏈路追蹤等。Spring Cloud 並不是重覆造輪子,而是將市面上開發得比較好的模塊集成進去,進行封裝,從 ...
  • class_template 類模板和函數模板的定義和使用類似,我們已經進行了介紹。有時,有兩個或多個類,其功能是相同的,僅僅是數據類型不同。類模板用於實現類所需數據的類型參數化 template<class NameType, class AgeType> class Person { publi ...
  • 目錄system v IPC簡介共用記憶體需要用到的函數介面shmget函數--獲取對象IDshmat函數--獲得映射空間shmctl函數--釋放資源共用記憶體實現思路註意 system v IPC簡介 消息隊列、共用記憶體和信號量統稱為system v IPC(進程間通信機制),V是羅馬數字5,是UNI ...