學習筆記——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
  • 就像 Web Api 介面可以對入參進行驗證,避免用戶傳入非法的或者不符合我們預期的參數一樣,選項也可以對配置源的內容進行驗證,避免配置中的值與選項類中的屬性不對應或者不滿足預期,畢竟大部分配置都是通過字元串的方式,驗證是很有必要的。 1. 註解驗證 像入參驗證一樣,選項驗證也可以通過特性註解方便地 ...
  • 原文作者:aircraft 原文鏈接:https://www.cnblogs.com/DOMLX/p/17270107.html 加工的泛型類如下: using System; using System.Collections.Generic; using System.IO; using Syst ...
  • 在前一篇文章,我們瞭解瞭如何通過.NET6+Quartz開發基於控制台應用程式的定時任務,今天繼續在之前的基礎上,進一步講解基於ASP.NET Core MVC+Quartz實現定時任務的可視化管理頁面,僅供學習分享使用,如有不足之處,還請指正。 涉及知識點 Quartz組件,關於Quartz組件的 ...
  • 面向對象1 面向對象,更在乎的結果,而過程的實現並不重要 IDea快捷鍵(基礎版) | 快捷鍵 | 作用 | | | | | ctrl + / | 快捷註釋 | | ctrl + shift + / | 多行註釋 | | ctrl + d | 快速複製 | | ctrl + shift + up/d ...
  • NX中的checkmate功能是用於檢查模型、圖紙數據的工具,在UGOPEN中有例子。手動操作可以檢查已載入的裝配下所有零部件,可以設置通過後保存模型,檢查結果保存到Teamcenter中,預設保存在零組件版本下。 代碼中可以設置多個檢查規則。相關設置可以在用戶預設設置中進行設置。 1 // 2 / ...
  • JavaSE 運算符 算術運算符:+,-,*,/,%,++(自增),--(自減) i++:先用後+1;++i:先+1後用 賦值運算符:= 擴展賦值運算符:+=,-=,*=,/= a+=b >a=a+b: ​ 可讀性差,但是編譯效率高,且會自動進行類型轉換; ​ 當ab為基本數據類型時,a+b和b+a ...
  • 面向對象2 訪問修飾符 | | private | default | protected | public | | | | | | | | 當前類 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_che ...
  • 推薦一些學習qml教程 Qt官方的QML教程: https://doc.qt.io/qt-5/qtqml-index.html 這是一個由Qt官方提供的完整的QML教程,包含了所有基本知識和高級語法。 QML中文網:http://www.qmlcn.com/ 這是一個非常不錯的中文QML學習網站,提 ...
  • QAbstractBUtton: 所有按鈕控制項的基類 提供按鈕的通用功能 繼承自QWidget 屬於抽象類別,不能直接去使用,必須藉助於子類(除非你覺得子類不夠用,想自定義一個按鈕) 大部分功能之前已經使用過,在這裡只作簡單介紹 文本設置: setText(str) :設置按鈕提示文本 text() ...
  • 使用 VLD 記憶體泄漏檢測工具輔助開發時整理的學習筆記。本篇介紹 VLD 配置文件中配置項 StartDisabled 的使用方法。 ...