Redis概述與安裝,數據類型簡介

来源:https://www.cnblogs.com/SimpleWu/archive/2018/11/20/9989264.html
-Advertisement-
Play Games

[TOC] Redis概述與安裝使用 Author:SimpleWu Redis簡介 Redis英語全稱:( REmote DIctionary Server ) 遠程字典伺服器。 是完全開源免費的,用C語言編寫的,遵守BSD協議,是一個高性能的(key/value)分散式記憶體資料庫,基於記憶體運行並 ...


目錄

Redis概述與安裝使用

Author:SimpleWu
GitHub-redis

Redis簡介

Redis英語全稱:( REmote DIctionary Server ) 遠程字典伺服器。

是完全開源免費的,用C語言編寫的,遵守BSD協議,是一個高性能的(key/value)分散式記憶體資料庫,基於記憶體運行並支持持久化的NoSQL資料庫,是當前最熱門的NoSql資料庫之一,也被人們稱為數據結構伺服器

Redis通常被稱為數據結構伺服器,因為值(value)可以是 字元串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等類型。

什麼是NoSQL?

概念 : NoSQL(NoSQL = Not Only SQL ),意即“不僅僅是SQL”-泛指非關係型的資料庫

解析:泛指非關係型的資料庫。隨著互聯網web2.0網站的興起,傳統的關係資料庫在應付web2.0網站,特別是超大規模和高併發的SNS類型的web2.0純動態網站已經顯得力不從心。

傳統單機 MySQL 瓶頸
  1. 數據量的總大小,一個機器1放不下,單表數據達到500萬時MySQL性能低
  2. 數據的索引(B + Tree) 一個機器的記憶體放不下時
  3. 訪問量(讀寫混合)一個實例不能承受

為什麼需要NoSQL

今天我們可以通過第三方平臺(如:Baidu,Google,Facebook等)可以很容易的訪問和抓取數據。用戶的個人信息,社交網路,地理位置,用戶生成的數據和用戶操作日誌已經成倍的增加。我們如果要對這些用戶數據進行挖掘,那SQL資料庫已經不適合這些應用了,NoSQL資料庫的發展能很好的處理這些大數據。和傳統的關係型資料庫相比,NoSQL具有以下的優勢:

  • high performance ,高併發讀寫,動態頁面展示與交互,比如微博點贊評論等操作,實時統計線上人數排行榜等
  • huge storage,海量數據的高效存儲和訪問,大型網站的用戶登錄系統
  • high scalability && high availability,高可擴展性和高可用性
互聯網的瓶頸

高併發讀寫:

針對短時間內具有高併發的情況,特別是短時間內大量的寫入操作。傳統資料庫針對這種情況就有些力不從心了。

海量數據的高效率存儲和訪問:

現在的數據已經是非常龐大了,一些大型網站每天產生的數據量是相當恐怖的。存儲了這麼多的數據,查詢效率就會受到很大的影響。

高科擴展性和高可用性:

基於傳統資料庫的結構,我們的資料庫表是非常難以橫向擴展的,比如增加一個新的欄位時或者修改某個欄位時,牽一發而動全身。

數據存儲的方式單一:

在資料庫中針對形形色色的數據,我們都只有採用表結構的方式來存儲數據。

No-Sql能幹什麼?

易擴展:

NoSQL資料庫種類繁多,但是一個共同的特點都是去掉關係資料庫的關係型特性。數據之間無關係,這樣就非常容易擴展。也無形之間,在架構的層面上帶來了可擴展的能力。

大數據量性能高:

NoSQL資料庫都具有非常高的讀寫性能,尤其在大數據量下,同樣表現優秀。這得益於它的無關係性,資料庫的結構簡單。

一般MySQL使用Query Cache,每次表的更新Cache就失效,是一種大粒度的Cache,在針對web2.0的交互頻繁的應用,Cache性能不高。而NoSQL的Cache是記錄級的,是一種細粒度的Cache,所以NoSQL在這個層面上來說就要性能高很多了

多樣靈活的數據模型:

NoSQL無需事先為要存儲的數據建立欄位,隨時可以存儲自定義的數據格式。而在關係資料庫里,增刪欄位是一件非常麻煩的事情。如果是非常大數據量的表,增加欄位簡直就是一個噩夢

NoSQL資料庫的四大分類
  • 鍵值(Key-Value)存儲資料庫
  • 文檔型資料庫(bson)
  • 列存儲資料庫
  • 圖形(Graph)資料庫

對比:

  • key-value:內容緩存,主要用於處理大量數據的高訪問負載,也用於一些日誌系統等。優點:查詢速度快。缺點:數據無結構化,通常只被當做字元串或者二進位數據。
  • 列存儲:分散式文件系統。優點:查找速度快,可擴展性強,更容易進行分散式擴展。缺點:功能相對局限。
  • 文檔型:與key-value類似,不同的是資料庫能夠瞭解value的內容。優點:數據結構要求不嚴格,表結構可變,不需要預先定義表結構。缺點:查詢效率不高,缺乏統一的語法。
  • 圖形:社交網路,推薦系統。專註於構建關係圖譜。優點:利用圖形結構相關演算法,來尋求最短路徑。缺點:很多時候需要對整個圖形計算才能得出需要的信息。

Redis能幹嘛?

  • 緩存
  • 網站訪問統計
  • 任務隊列
  • 數據過期處理
  • 應用排行榜
  • 分散式集群架構中的session分離

Redis的特點?

  • Redis支持數據的持久化,可以將記憶體中的數據保持在磁碟中,重啟的時候可以再次載入進行使用。
  • Redis不僅僅支持簡單的key-value類型的數據,同時還提供list,set,zset,hash等數據結構的存儲。
  • Redis支持數據的備份,即master-slave模式的數據備份。

Redis的安裝

Redis 支持多種平臺,大多數情況下考慮到記憶體會在Linux下搭建Redis伺服器。

下載地址:

Linux版本
http://www.redis.cn/download.html
windowns版本
https://github.com/MicrosoftArchive/redis/releases
Linxu環境下安裝redis

下載:

[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget http://download.redis.io/releases/redis-4.0.6.tar.gz

解壓:

[root@localhost src]# tar -zxf redis-4.0.6.tar.gz 
[root@localhost src]# ll
total 1688
drwxrwxr-x. 6 root root    4096 Dec  4  2017 redis-4.0.6
-rw-r--r--. 1 root root 1723533 Dec  4  2017 redis-4.0.6.tar.gz

編譯:

[root@localhost redis-4.0.6]# make
# 如果編譯失敗請先下載編譯依賴,編譯成功不需要執行以下命令
yum install wget make gcc tcl

安裝:

# 將redis安裝到/usr/local/redis目錄
[root@localhost redis-4.0.6]# make PREFIX=/usr/local/redis install
# 進入redis安裝目錄
[root@localhost redis-4.0.6]# cd /usr/local/redis/bin/
[root@localhost bin]# ll
total 35432
-rwxr-xr-x. 1 root root 5597214 Aug 30 05:34 redis-benchmark
-rwxr-xr-x. 1 root root 8314825 Aug 30 05:34 redis-check-aof
-rwxr-xr-x. 1 root root 8314825 Aug 30 05:34 redis-check-rdb
-rwxr-xr-x. 1 root root 5736370 Aug 30 05:34 redis-cli
lrwxrwxrwx. 1 root root      12 Aug 30 05:34 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 8314825 Aug 30 05:34 redis-server
# 如果出現以上文件說明redis安裝成功了

運行:

[root@localhost bin]# ./redis-server 

使用內置的客戶端命令redis-cli進行使用:

[root@localhost bin]# ./redis-cli
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> get foo
"bar"
127.0.0.1:6379> 

修改redis配置文件

# 複製redis.conf文件到/etc目錄
[root@localhost redis-4.0.6]# cp /usr/local/src/redis-4.0.6/redis.conf /etc/redis.conf
# 編輯redis.conf文件
[root@localhost ~]# vim /etc/redis.conf 
# 設置redis為後臺啟動進程,將daemonize no 改為 daemonize yes
daemonize yes 
# 修改綁定的主機地址,將#bind 127.0.0.1改成自己的ip地址,去掉"#"號
bind 192.168.41.22

關閉redis服務,重新運行

[root@localhost bin]# ./redis-cli shutdown
# 重新啟動redis載入指定的配置文件
[root@localhost bin]# ./redis-server /etc/redis.conf 

將redis-server和redis-cli命令加入環境變數

vim /etc/proflie
# 在最後一行加入
export PATH=/usr/local/redis/bin:$PATH 

使其立即生效

source /etc/proflie

如果不想手動編輯redis.conf文件可以通過redis提供的服務工具生成這部分可以不執行

[root@localhost ~]# cd /usr/local/src/redis-4.0.6/utils
[root@localhost utils]# ./install_server.sh 
Welcome to the redis service installer
This script will help you easily set up a running redis server

Please select the redis port for this instance: [6379] 
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf] 
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log] 
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379] 
Selected default - /var/lib/redis/6379
Please select the redis executable path [] /usr/local/redis/bin/redis-server
Selected config:
Port           : 6379
Config file    : /etc/redis/6379.conf
Log file       : /var/log/redis_6379.log
Data dir       : /var/lib/redis/6379
Executable     : /usr/local/redis/bin/redis-server
Cli Executable : /usr/local/redis/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...
Installation successful!

# 啟動redis
[root@localhost utils]# service redis_6379 start
Starting Redis server...
# 查看redis是否啟動
[root@localhost utils]# service redis_6379 status
Redis is running (23804)
# 關閉redis
[root@localhost utils]# service redis_6379 stop
Stopping ...
Redis stopped
windows下安裝Redis

在我們windows下安裝redis可以去微軟github上下載,但是只提供了64位操作系統的。

這裡我們下載 Redis-x64-xxx.zip壓縮包到 任意目錄,解壓後,將文件夾重新命名為 redis。Redis分為伺服器和客戶端兩種,必須啟動伺服器才能使用Redis。

啟動redis服務

啟動方式來到doc界面輸入:

redis-server

啟動後出現這種玩意:

[2900] 20 Nov 15:20:23.629 # Warning: no config file specified, using the defaul
t config. In order to specify a config file use redis-server /path/to/redis.conf

                _._
           _.-``__ ''-._
      _.-``    `.  `_.  ''-._           Redis 3.2.100 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 2900
  `-._    `-._  `-./  _.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |           http://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'
      `-._    `-.__.-'    _.-'
          `-._        _.-'
              `-.__.-'

[2900] 20 Nov 15:20:23.637 # Server started, Redis version 3.2.100
[2900] 20 Nov 15:20:23.637 * The server is now ready to accept connections on po
rt 6379

其實解壓後我們可以直接運行redis-server.exe也是可以啟動的效果同上。

客戶端連接伺服器

doc界面輸入:

Redis-cli –h host –p port –a password

獲取直接打開redis-cli.exe效果一致。

Redis啟動後的配置

進程相關:單進程模型來處理客戶端的請求。對讀寫等事件的響應是通過對epoll函數的包裝來做到的。Redis的實際處理速度完全依靠主進程的執行效率。

密碼相關:統一密碼管理,16個庫都是同樣密碼,要麼全部連上,要麼一個也連接不上。

Redis索引資料庫索引從0開始

資料庫相關

  • 預設16個資料庫,下標從0開始,初始預設使用0號庫,可以通過配置文件修改資料庫預設值。
  • select:切換資料庫 如:select 1,則切換到1的資料庫
  • dbsize:可查看當前資料庫key的數據
  • flushdb:清空當前資料庫
  • flushall:清空所有資料庫
  • keys:獲取當前資料庫的key,如:keys 獲取所有,key k? 獲取字母以k開始且兩字元的,key k 以k開始的

Redis的五大類型

  • String(字元串)
  • Hash(哈希)
  • List(列表)
  • Set(集合)
  • Zset(sorted set:有序集合)
Redis string類型

tring是redis最基本的類型,一個key對應一個value。String類型是二進位安全的。意思是redis的string可以包含任何數據。比如jpg圖片或者序列化的對象。string類型是Redis最基本的數據類型,一個redis中字元串value最多可以是512M。

指令 描述
SET key value 設置指定 key 的值。
GET key 獲取指定 key 的值。
STRLEN KEY 返回 key 所儲存的字元串值的長度。
GETRANGE key start end 返回 key 中字元串值的子字元
SETRANGE key offset value 這個命令的作用是覆蓋key對應的string的一部分,從指定的offset處開始,覆蓋value的長度。
GETSET key value 將給定 key 的值設為 value ,並返回 key 的舊值(old value)。
INCR key 將 key 中儲存的數字值增一。
INCRBY key increment 將 key 所儲存的值加上給定的增量值(increment) 。
DECR key 將 key 中儲存的數字值減一。
DECRBY key decrement key 所儲存的值減去給定的減量值(decrement) 。
MGET key1 [key2..] 獲取所有(一個或多個)給定 key 的值。
MSET key value [key value ...] 同時設置一個或多個 key-value 對。
APPEND key value 如果 key 已經存在並且是一個字元串, APPEND 命令將 value 追加到 key 原來的值的末尾。

詳細指令參考

Redis 哈希(Hash)

Redis Hash:是一個string類型的field和value(以鍵值)的映射表,hash特別適合用於存儲對象。

存儲大小:每個 hash 可以存儲 232 - 1 鍵值對(40多億)。

案例:設置了 redis 的一些描述信息(name, description, likes, visitors) 到哈希表的 runoobkey 中

指令 描述
HSET key field value 將哈希表 key 中的欄位 field 的值設為 value 。
HSET key field value 將哈希表 key 中的欄位 field 的值設為 value 。
HGET key field 獲取存儲在哈希表中指定欄位的值。
HMSET key field1 value1 [field2 value2 ] 同時將多個 field-value (域-值)對設置到哈希表 key 中。
HMGET key field1 [field2] 獲取所有給定欄位的值
HGETALL key 獲取在哈希表中指定 key 的所有欄位和值
HDEL key field1 [field2] 刪除一個或多個哈希表欄位
HEXISTS key field 查看哈希表 key 中,指定的欄位是否存在
HKEYS key 獲取所有哈希表中的欄位
HLEN key 獲取哈希表中欄位的數量
HSETNX key field value 只有在欄位 field 不存在時,設置哈希表欄位的值
HVALS key 獲取哈希表中所有值

詳細參考地址

Redis 列表(List)

Redis列表list:

Redis列表是簡單的字元串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)

存儲數據量:

一個列表最多可以包含 232 - 1 個元素 (4294967295, 每個列表超過40億個元素)

指令 描述
LPUSH key value1 [value2] 將一個或多個值插入到列表頭部
RPUSH key value1 [value2] 將一個或多個值插入到列表尾部
LRANGE key start stop 獲取列表指定範圍內的元素
LPOP key 移出並獲取列表的第一個元素
RPOP key 移除並獲取最後一個元素
LINDEX key index 通過索引獲取列表中的元素
LLEN key 獲取列表長度
LTRIM key start stop 對一個列表進行修剪(trim),就是說,讓列表只保留指定區間內的元素,不在指定區間之內的元素都將被刪除
LREM key 移除列表元素
LSET key index value 通過索引設置列表元素的值
LINSERT key BEFORE|AFTER pivot value 在列表的元素前或者後插入元素

詳細參考地址

Redis 集合(Set)

Redis 集合-set

Redis的Set是string類型的無序集合。集合成員是唯一的,這就意味著集合中不能出現重覆的數據。

Redis 中 集合是通過哈希表實現的,所以添加,刪除,查找的複雜度都是O(1)。

存儲數據量:

集合中最大的成員數為 232 - 1 (4294967295, 每個集合可存儲40多億個成員)。

指令 描述
SADD key member1 [member2] 向集合添加一個或多個成員
SCARD key 獲取集合的成員數
SMEMBERS key 返回集合中的所有成員
SISMEMBER key member 判斷 member 元素是否是集合 key 的成員
SREM key member1 [member2] 移除集合中一個或多個成員
SRANDMEMBER key [count] 返回集合中一個或多個隨機數
SPOP key 移除並返回集合中的一個隨機元素
SMOVE source destination member 將 member 元素從 source 集合移動到 destination 集合

詳細參考地址

Redis 有序集合(sorted set)

Redis 有序集合(sorted set):

Redis 有序集合和集合一樣也是string類型元素的集合,且不允許重覆的成員。不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。有序集合的成員是唯一的,但分數(score)卻可以重覆。

存儲數量:集合是通過哈希表實現的,所以添加,刪除,查找的複雜度都是O(1)。 集合中最大的成員數為 232 - 1 (4294967295, 每個集合可存儲40多億個成員)。

指令 描述
ZADD key score1 member1 [score2 member2] 向有序集合添加一個或多個成員,或者更新已存在成員的分數
ZRANGE key start stop [WITHSCORES] 通過索引區間返回有序集合成指定區間內的成員
ZRANGEBYSCORE key min max [WITHSCORES][LIMIT] 通過分數返回有序集合指定區間內的成員
ZREM key member [member ...] 移除有序集合中的一個或多個成員
ZREMRANGEBYLEX key min max 移除有序集合中給定的字典區間的所有成員
ZCARD key 獲取有序集合的成員數
ZCOUNT key min max 計算在有序集合中指定區間分數的成員數
ZREVRANK key member 返回有序集合中指定成員的排名,有序集成員按分數值遞減(從大到小)排序
ZSCORE key member 返回有序集中,成員的分數值
ZREVRANGE key start stop [WITHSCORES] 返回有序集中指定區間內的成員,通過索引,分數從高到底
ZREVRANGEBYSCORE key max min [WITHSCORES] 返回有序集中指定分數區間內的成員,分數從高到低排序
ZSCAN key cursor [MATCH pattern][COUNT count] 迭代有序集合中的元素(包括元素成員和元素分值)

各個數據類型的應用場景

類型 簡介 特性 場景
String 二進位安全 可以包含任何數據,比如jpg圖片或者序列化的對象,一個鍵最大能存儲512M
Hash 鍵值對集合,即編程語言中的Map類 適合存儲對象,並且可以像資料庫中update一個屬性一樣只修改某一項屬性值(Memcached中需要取出整個字元串反序列化成對象修改完再序列化存回去) 存儲、讀取、修改用戶屬性
List 鏈表(雙向鏈表) 增刪快,提供了操作某一段元素的API 1,最新消息排行等功能(比如朋友圈的時間線) 2,消息隊列
Set 哈希表實現,元素不重覆 1、添加、刪除,查找的複雜度都是O(1) 2、為集合提供了求交集、並集、差集等操作 1、共同好友 2、利用唯一性,統計訪問網站的所有獨立ip 3、好友推薦時,根據tag求交集,大於某個閾值就可以推薦
SortedSet 將Set中的元素增加一個權重參數score,元素按score有序排列 數據插入集合時,已經進行天然排序 1、排行榜 2、帶權重的消息隊列

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

-Advertisement-
Play Games
更多相關文章
  • 基於 ssh 的 sftp 服務相比 ftp 有更好的安全性(非明文帳號密碼傳輸)和方便的許可權管理(限制用戶的活動目錄)。 1、開通 sftp 帳號,使用戶只能 sftp 操作文件, 而不能 ssh 到伺服器 2、限定用戶的活動目錄,使用戶只能在指定的目錄下活動,使用 sftp 的 ChrootDi ...
  • 一、知識準備 1、在linux中,一切皆為文件,所有不同種類的類型都被抽象成文件(比如:塊設備,socket套接字,pipe隊列) 2、操作這些不同的類型就像操作文件一樣,比如增刪改查等 二、環境準備 | 組件 | 版本 | | | | | OS | CentOS Linux release 7.5 ...
  • 在處理excel數據時需要將一組具有相同標簽值的數據給按標簽抽取出來,同樣的標簽值對應著同一個類別,這項操作讓我對pandas的聚合功能有了更深刻的認識。 所謂聚合groupby,實際上是指將向量或者向量對應的高維度數據映射為標量值的過程,這裡強調求出標量值其實是為了好顯示groupby對象,本身只 ...
  • sqlmap 基本應用: sqlmap詳細命令: -is-dba 當前用戶許可權(是否為root許可權) -dbs 所有資料庫 -current-db 網站當前資料庫 -users 所有資料庫用戶 -current-user 當前資料庫用戶 -random-agent 構造隨機user-agent -p ...
  • MySQL怎麼優化SQL呢? 一、考慮表有沒有加索引。 二、加上索引考慮索引是否失效 失效的原因: 1.數據類型不匹配 2.索引列加上函數 3.索引列參與邏輯運算 4.組合索引配置最左首碼 如abc 只要a出現就走索引 否則失效 5.or 關鍵字 必須前後都要加上索引否則索引失效 6.like 前面 ...
  • [TOC] Memcached介紹 Memcached是什麼? Free & open source, high performance, distributed memory object caching system(自由&開放源碼,高性能,分散式的記憶體對象緩存系統)。由LiveJournal旗 ...
  • 一. 有序集合概述 Redis 有序集合對象和集合對象一樣也是string類型元素的集合,且不允許重覆的成員。不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。有序集合的成員是唯一的,但分數(score)卻可以重覆。 在前面第9章中講到Re ...
  • 閑來無事刷技術論壇,看到一個這樣的問題: 感覺題材很新穎,角度很刁鑽,從業至今還未碰到過類似需求,今日反正也是閑著,索性解答一番。首先當然是生成測試數據。 結果如圖: 寫作時間:2018-11-20 本文只代表本人的見解,可能存在錯誤,僅用於技術交流。如果你喜歡該文,可以掃下麵的二維碼打賞我(打賞敬 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...