學習筆記——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
  • Dapr Outbox 是1.12中的功能。 本文只介紹Dapr Outbox 執行流程,Dapr Outbox基本用法請閱讀官方文檔 。本文中appID=order-processor,topic=orders 本文前提知識:熟悉Dapr狀態管理、Dapr發佈訂閱和Outbox 模式。 Outbo ...
  • 引言 在前幾章我們深度講解了單元測試和集成測試的基礎知識,這一章我們來講解一下代碼覆蓋率,代碼覆蓋率是單元測試運行的度量值,覆蓋率通常以百分比表示,用於衡量代碼被測試覆蓋的程度,幫助開發人員評估測試用例的質量和代碼的健壯性。常見的覆蓋率包括語句覆蓋率(Line Coverage)、分支覆蓋率(Bra ...
  • 前言 本文介紹瞭如何使用S7.NET庫實現對西門子PLC DB塊數據的讀寫,記錄了使用電腦模擬,模擬PLC,自至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1.Windows環境下鏈路層網路訪問的行業標準工具(WinPcap_4_1_3.exe)下載鏈接:http ...
  • 從依賴倒置原則(Dependency Inversion Principle, DIP)到控制反轉(Inversion of Control, IoC)再到依賴註入(Dependency Injection, DI)的演進過程,我們可以理解為一種逐步抽象和解耦的設計思想。這種思想在C#等面向對象的編 ...
  • 關於Python中的私有屬性和私有方法 Python對於類的成員沒有嚴格的訪問控制限制,這與其他面相對對象語言有區別。關於私有屬性和私有方法,有如下要點: 1、通常我們約定,兩個下劃線開頭的屬性是私有的(private)。其他為公共的(public); 2、類內部可以訪問私有屬性(方法); 3、類外 ...
  • C++ 訪問說明符 訪問說明符是 C++ 中控制類成員(屬性和方法)可訪問性的關鍵字。它們用於封裝類數據並保護其免受意外修改或濫用。 三種訪問說明符: public:允許從類外部的任何地方訪問成員。 private:僅允許在類內部訪問成員。 protected:允許在類內部及其派生類中訪問成員。 示 ...
  • 寫這個隨筆說一下C++的static_cast和dynamic_cast用在子類與父類的指針轉換時的一些事宜。首先,【static_cast,dynamic_cast】【父類指針,子類指針】,兩兩一組,共有4種組合:用 static_cast 父類轉子類、用 static_cast 子類轉父類、使用 ...
  • /******************************************************************************************************** * * * 設計雙向鏈表的介面 * * * * Copyright (c) 2023-2 ...
  • 相信接觸過spring做開發的小伙伴們一定使用過@ComponentScan註解 @ComponentScan("com.wangm.lifecycle") public class AppConfig { } @ComponentScan指定basePackage,將包下的類按照一定規則註冊成Be ...
  • 操作系統 :CentOS 7.6_x64 opensips版本: 2.4.9 python版本:2.7.5 python作為腳本語言,使用起來很方便,查了下opensips的文檔,支持使用python腳本寫邏輯代碼。今天整理下CentOS7環境下opensips2.4.9的python模塊筆記及使用 ...