搜尋
首頁資料庫RedisRedis入門知識點有哪些

Redis入門知識點有哪些

May 27, 2023 am 11:24 AM
redis

1、Redis簡介

REmote DIctionary Server(Redis)是由Salvatore Sanfilippo寫的key-value儲存系統。 Redis是一個開源的使用ANSI C語言編寫、遵守BSD協定、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。它通常被稱為資料結構伺服器,因為值(value)可以是 字串(String), 雜湊(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等類型。

大家都知道了redis是基於key-value的no sql資料庫,因此,先來了解一下關於key相關的知識點

  1、任何二進位的序列都可以當作key使用

  2、Redis有統一的規則來設計key

  3、對key-value允許的最大長度是512MB

2、支援的語言

ActionScript Bash  C  C#  C++  Clojure Common LispCrystal  D  Dart  Elixir  emacs  lisp  Erlang  Fancy  gawk  GNU Prolog  Go  Haskell  Haxe  Io Java  Javascript  Julia  Lua  Matlab  mruby  Nim  Node.js  Objective-C  OCaml Pascal  Perl  PHP  Pure Data  Python  R  Racket  Rebol  Ruby  Rust Scala  Scheme  Smalltalk  Swift  Tcl  VB  VCL

3、Redis的應用程式場景到底有哪些? ?

  1、最常用的就是會話快取

  2、訊息佇列,例如支付

  3、活動排行榜或計數

  4 、發布、訂閱訊息(訊息通知)

  5、商品清單、評論清單等

4、Redis安裝

關於redis安裝與相關的知識點介紹請參考Nosql資料庫服務之redis

安裝的大概步驟如下:

Redis是c語言開發的,安裝redis需要c語言的編譯環境

如果沒有gcc需要線上安裝:yum install gcc-c

第一步:取得原始碼套件:wget http://download.redis.io/rele...

第二步:解壓縮redis:tar zxvf redis-3.0.0.tar.gz

第三步:編譯。進入redis源碼目錄(cd redis-3.0.0)。執行 make

第四步:安裝。 make install PREFIX=/usr/local/redis

PREFIX參數指定redis的安裝目錄

5、Redis資料型別

#Redis共支援五種資料型別

1、string(字串)

2、hash(哈希)

3、list(列表)

4、set (集合)

5、zset(sorted set 有序集合)

string(字串)

Redis最基本的資料型別是鍵值對,其中一個鍵對應一個值,需要注意的是,一個鍵值對最大能夠儲存512MB。

127.0.0.1:6379> set key "hello world"  OK  127.0.0.1:6379> get key  "hello world"  127.0.0.1:6379> getset key "nihao"  "hello world"  127.0.0.1:6379> mset key1 "hi" key2 "nihao" key3 "hello"  OK  127.0.0.1:6379> get key1  "hi"  127.0.0.1:6379> get key2  "nihao"  127.0.0.1:6379> get key3  "hello"

相關指令介紹

set 為一個Key設定value(值)

get 得到某個key對應的value(值)

getset 為一個Key設定value(值)並傳回對應的值

mset 為多個key設定value(值)

hash(雜湊)

redis hash是一個鍵值對的集合, 是一個string類型的field和value的映射表,適合用於儲存物件

127.0.0.1:6379> hset redishash 1 "001"  (integer) 1  127.0.0.1:6379> hget redishash 1  "001"  127.0.0.1:6379> hmset redishash 1 "001" 2 "002"  OK  127.0.0.1:6379> hget redishash 1  "001"  127.0.0.1:6379> hget redishash 2  "002"  127.0.0.1:6379> hmget redishash 1 2  1) "001"  2) "002"

#相關命令介紹

hset 將Key對應的hash中的field配置為value,如果hash不存則自動創建,

hget 獲得某個hash中的field配置的值

# hmset 批次配置同一個hash中的多個field值

hmget 批次獲得同一個hash中的多個field值

list(列表)

##是redis簡單的字串列表,它按插入順序排序

127.0.0.1:6379> lpush word  hi  (integer) 1  127.0.0.1:6379> lpush word  hello  (integer) 2  127.0.0.1:6379> rpush word  world  (integer) 3  127.0.0.1:6379> lrange word 0 2  1) "hello"  2) "hi"  3) "world"  127.0.0.1:6379> llen word  (integer) 3

相關命令介紹

lpush 向指定的列表左側插入元素,返回插入後清單的長度

rpush 向指定的清單右側插入元素,傳回插入後清單的長度

llen  傳回指定清單的長度

lrange 傳回指定清單中指定範圍的元素值

set(集合)

是string類型的無序集合,也不可重複

127.0.0.1:6379> sadd redis redisset  (integer) 1  127.0.0.1:6379> sadd redis redisset1  (integer) 1  127.0.0.1:6379> sadd redis redisset2  (integer) 1  127.0.0.1:6379> smembers redis  1) "redisset1"  2) "redisset"  3) "redisset2"  127.0.0.1:6379> sadd redis redisset2  (integer) 0  127.0.0.1:6379> smembers redis  1) "redisset1"  2) "redisset"  3) "redisset2"  127.0.0.1:6379> smembers redis  1) "redisset1"  2) "redisset3"  3) "redisset"  4) "redisset2"  127.0.0.1:6379> srem redis redisset (integer) 1  127.0.0.1:6379> smembers redis  1) "redisset1"  2) "redisset3"  3) "redisset2"

#相關指令介紹

sadd 加入一個string元素到key對應的set集合中,成功回傳1,如果元素存在回傳0

smembers 傳回指定的集合中所有的元素

srem 刪除指定集合的​​某個元素

zset(sorted set 有序集合)

是string類型的有序集合,也不可重複

sorted set中的每個元素都需要指定一個分數,根據分數對元素進行升序排序,如果多個元素有相同的分數,則以字典序進行升序排序,sorted set 因此非常適合實現排名

127.0.0.1:6379> zadd nosql 0 001  (integer) 1  127.0.0.1:6379> zadd nosql 0 002  (integer) 1  127.0.0.1:6379> zadd nosql 0 003  (integer) 1  127.0.0.1:6379> zcount nosql 0 0   (integer) 3  127.0.0.1:6379> zcount nosql 0 3  (integer) 3  127.0.0.1:6379> zrem nosql 002  (integer) 1  127.0.0.1:6379> zcount nosql 0 3  (integer) 2  127.0.0.1:6379> zscore nosql 003  "0"  127.0.0.1:6379> zrangebyscore nosql 0 10  1) "001"  2) "003"  127.0.0.1:6379> zadd nosql 1 003  (integer) 0  127.0.0.1:6379> zadd nosql 1 004  (integer) 1  127.0.0.1:6379> zrangebyscore nosql 0 10  1) "001"  2) "003"  3) "004"  127.0.0.1:6379> zadd nosql 3 005  (integer) 1  127.0.0.1:6379> zadd nosql 2 006  (integer) 1  127.0.0.1:6379> zrangebyscore nosql 0 10  1) "001"  2) "003"  3) "004"  4) "006"  5) "005"

相關指令介紹

zadd  在指定的sorteset中新增1個或多個元素

zrem  從指定的sorteset中刪除1個或多個元素

zcount 查看指定的sorteset中指定分數範圍內的元素數量

zscore 查看指定的sorteset中指定分數的元素

zrangebyscore 查看指定的sorteset中指定分數範圍內的所有元素

6、鍵值相關的指令

127.0.0.1:6379> exists key  (integer) 1  127.0.0.1:6379> exists key1  (integer) 1  127.0.0.1:6379> exists key100  (integer) 0  127.0.0.1:6379> get key  "nihao,hello"  127.0.0.1:6379> get key1  "hi"  127.0.0.1:6379> del key1  (integer) 1  127.0.0.1:6379> get key1  (nil)  127.0.0.1:6379> rename key key0  OK  127.0.0.1:6379> get key(nil)  127.0.0.1:6379> get key0  "nihao,hello"  127.0.0.1:6379> type key0  string
exists     

 #確認key是否存在

#del

#刪除key

expire     

 #設定Key過期時間(單位秒)##persist     

#移除Key過期時間的設定

rename   

 #重新命名 key

type         

#傳回值的類型 

7、Redis服務相關的命令

127.0.0.1:6379> select 0  OK  127.0.0.1:6379> info  # Server  redis_version:3.0.6  redis_git_sha1:00000000  redis_git_dirty:0  redis_build_id:347e3eeef5029f3  redis_mode:standalone  os:Linux 3.10.0-693.el7.x86_64 x86_64  arch_bits:64  multiplexing_api:epoll  gcc_version:4.8.5  process_id:31197  run_id:8b6ec6ad5035f5df0b94454e199511084ac6fb12  tcp_port:6379  uptime_in_seconds:8514  uptime_in_days:0  hz:10  lru_clock:14015928  config_file:/usr/local/redis/redis.conf  -------------------省略N行  127.0.0.1:6379> CONFIG GET 0  (empty list or set)  127.0.0.1:6379> CONFIG GET 15  (empty list or set)

slect           #选择数据库(数据库编号0-15)

quit             #退出连接

info             #获得服务的信息与统计

monitor       #实时监控

config get   #获得服务配置

flushdb       #删除当前选择的数据库中的key

flushall       #删除所有数据库中的key

8、Redis的发布与订阅

Redis发布与订阅(pub/sub)是它的一种消息通信模式,一方发送信息,一方接收信息。

下图是三个客户端同时订阅同一个频道

Redis入門知識點有哪些

下图是有新信息发送给频道1时,就会将消息发送给订阅它的三个客户端

Redis入門知識點有哪些

9、Redis事务

Redis事务可以一次执行多条命令

1、发送exec命令前放入队列缓存,结束事务

2、收到exec命令后执行事务操作,如果某一命令执行失败,其它命令仍可继续执行

3、一个事务执行的过程中,其它客户端提交的请求不会被插入到事务执行的命令列表中

一个事务经历三个阶段

开始事务(命令:multi)

命令执行

结束事务(命令:exec)

127.0.0.1:6379> MULTI  OK  127.0.0.1:6379> set key key1  QUEUED  127.0.0.1:6379> get key  QUEUED  127.0.0.1:6379> rename key key001  QUEUED  127.0.0.1:6379> exec  1) OK  2) "key1"  3) OK

10、Redis安全配置

可以通过修改配置文件设备密码参数来提高安全性

 #requirepass foobared

去掉注释#号就可以配置密码

没有配置密码的情况下查询如下

127.0.0.1:6379> CONFIG GET requirepass  1) "requirepass"  2) ""

配置密码之后,就需要进行认证

127.0.0.1:6379> CONFIG GET requirepass  (error) NOAUTH Authentication required.  127.0.0.1:6379> AUTH foobared   #认证OK  127.0.0.1:6379> CONFIG GET requirepass  1) "requirepass"  2) "foobared"

11、Redis持久化

Redis持久有两种方式:Snapshotting(快照),Append-only file(AOF)

Snapshotting(快照)

1、将存储在内存的数据以快照的方式写入二进制文件中,如默认dump.rdb中

2、save 900 1

#900秒内如果超过1个Key被修改,则启动快照保存

3、save 300 10

#300秒内如果超过10个Key被修改,则启动快照保存

4、save 60 10000

#60秒内如果超过10000个Key被修改,则启动快照保存

Append-only file(AOF)

1、使用AOF持久时,服务会将每个收到的写命令通过write函数追加到文件中(appendonly.aof)

2、AOF持久化存储方式参数说明

appendonly yes 

#开启AOF持久化存储方式

appendfsync always

#收到写命令后就立即写入磁盘,效率最差,效果最好

appendfsync everysec

#每秒写入磁盘一次,效率与效果居中

appendfsync no

#完全依赖OS,效率最佳,效果没法保证

12、Redis 性能测试

自带相关测试工具

[root@test ~]# redis-benchmark --help Usage: redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests> [-k <boolean>]   -h <hostname>      Server hostname (default 127.0.0.1)   -p <port>          Server port (default 6379)   -s <socket>        Server socket (overrides host and port) -a <password>      Password for Redis Auth   -c <clients>       Number of parallel connections (default 50)   -n <requests>      Total number of requests (default 100000)   -d <size>          Data size of SET/GET value in bytes (default 2)   -dbnum <db>        SELECT the specified db number (default 0)   -k <boolean>       1=keep alive 0=reconnect (default 1)   -r <keyspacelen>   Use random keys for SET/GET/INCR, random values for SADD  Using this option the benchmark will expand the string __rand_int__  inside an argument with a 12 digits number in the specified range  from 0 to keyspacelen-1. The substitution changes every time a command  is executed. Default tests use this to hit random keys in the  specified range.  -P <numreq>        Pipeline <numreq> requests. Default 1 (no pipeline).   -q                 Quiet. Just show query/sec values --csv              Output in CSV format   -l                 Loop. Run the tests forever   -t <tests>         Only run the comma separated list of tests. The test                    names are the same as the ones produced as output.   -I                 Idle mode. Just open N idle connections and wait.  Examples:  Run the benchmark with the default configuration against 127.0.0.1:6379:     $ redis-benchmark Use 20 parallel clients, for a total of 100k requests, against 192.168.1.1:    $ redis-benchmark -h 192.168.1.1 -p 6379 -n 100000 -c 20   Fill 127.0.0.1:6379 with about 1 million keys only using the SET test:     $ redis-benchmark -t set -n 1000000 -r 100000000   Benchmark 127.0.0.1:6379 for a few commands producing CSV output:     $ redis-benchmark -t ping,set,get -n 100000 --csv   Benchmark a specific command line:     $ redis-benchmark -r 10000 -n 10000 eval 'return redis.call("ping")' 0  Fill a list with 10000 random elements:     $ redis-benchmark -r 10000 -n 10000 lpush mylist __rand_int__   On user specified command lines __rand_int__ is replaced with a random integer with a range of values selected by the -r option.</tests></numreq></numreq></keyspacelen></boolean></db></size></requests></clients></password></socket></port></hostname></boolean></requests></clients></port></host>

实际测试同时执行100万的请求

[root@test ~]# redis-benchmark -n 1000000 -q  PING_INLINE: 152578.58 requests per second  PING_BULK: 150308.14 requests per second  SET: 143266.47 requests per second  GET: 148632.58 requests per second  INCR: 145857.64 requests per second  LPUSH: 143781.45 requests per second  LPOP: 147819.66 requests per second  SADD: 138350.86 requests per second  SPOP: 134282.27 requests per second  LPUSH (needed to benchmark LRANGE): 141302.81 requests per second  LRANGE_100 (first 100 elements): 146756.67 requests per second  LRANGE_300 (first 300 elements): 148104.27 requests per second  LRANGE_500 (first 450 elements): 152671.75 requests per second  LRANGE_600 (first 600 elements): 148104.27 requests per second  MSET (10 keys): 132731.62 requests per second

13、Redis的备份与恢复

Redis自动备份有两种方式

第一种是通过dump.rdb文件实现备份

第二种使用aof文件实现自动备份

dump.rdb备份

Redis服务默认的自动文件备份方式(AOF没有开启的情况下),在服务启动时,就会自动从dump.rdb文件中去加载数据。

**具体配置在redis.conf

save 900 1

save 300 10

save 60 10000**

也可以手工执行save命令实现手动备份

127.0.0.1:6379> set name key  OK  127.0.0.1:6379> SAVE  OK  127.0.0.1:6379> set name key1  OK  127.0.0.1:6379> BGSAVE  Background saving started

redis快照到dump文件时,会自动生成dump.rdb的文件

# The filename where to dump the DB  dbfilename dump.rdb  -rw-r--r-- 1 root root   253 Apr 17 20:17 dump.rdb

SAVE命令表示使用主进程将当前数据库快照到dump文件

BGSAVE命令表示,主进程会fork一个子进程来进行快照备份

两种备份不同之处,前者会阻塞主进程,后者不会。

恢复举例

# Note that you must specify a directory here, not a file name.dir   /usr/local/redisdata/  #备份文件存储路径 127.0.0.1:6379> CONFIG GET dir  1) "dir"  2) "/usr/local/redisdata"  127.0.0.1:6379> set key 001  OK  127.0.0.1:6379> set key1 002  OK  127.0.0.1:6379> set key2 003  OK  127.0.0.1:6379> save  OK

将备份文件备份到其它目录

[root@test ~]# ll /usr/local/redisdata/  total 4 -rw-r--r-- 1 root root 49 Apr 17 21:24 dump.rdb  [root@test ~]# date  Tue Apr 17 21:25:38 CST 2018  [root@test ~]# cp ./dump.rdb /tmp/

删除数据

127.0.0.1:6379> del key1  (integer) 1  127.0.0.1:6379> get key1  (nil)

关闭服务,将原备份文件拷贝回save备份目录

[root@test ~]# redis-cli -a foobared shutdown  [root@test ~]# lsof -i :6379  [root@test ~]# cp /tmp/dump.rdb /usr/local/redisdata/  cp: overwrite ‘/usr/local/redisdata/dump.rdb’? y  [root@test ~]# redis-server /usr/local/redis/redis.conf &  [1] 31487

登录查看数据是否恢复

[root@test ~]# redis-cli -a foobared  127.0.0.1:6379> mget key key1 key2  1) "001"  2) "002"  3) "003"

AOF自动备份

redis服务默认是关闭此项配置

###### APPEND ONLY MODE ##########  appendonly no # The name of the append only file (default: "appendonly.aof")  appendfilename "appendonly.aof"  # appendfsync always  appendfsync everysec  # appendfsync no

配置文件的相关参数,前面已经详细介绍过。

AOF文件备份,是备份所有的历史记录以及执行过的命令,和mysql binlog很相似,在恢复时就是重新执次一次之前执行的命令,需要注意的就是在恢复之前,和数据库恢复一样需要手工删除执行过的del或误操作的命令。

AOF与dump备份不同

1、aof文件备份与dump文件备份不同

2、服务读取文件的优先顺序不同,会按照以下优先级进行启动

    如果只配置AOF,重启时加载AOF文件恢复数据

    如果同时 配置了RBD和AOF,启动是只加载AOF文件恢复数据

    如果只配置RBD,启动时将加载dump文件恢复数据

注意:只要配置了aof,但是没有aof文件,这个时候启动的数据库会是空的

14、Redis 生产优化介绍

1、内存管理优化 

hash-max-ziplist-entries 512     hash-max-ziplist-value 64     list-max-ziplist-entries 512     list-max-ziplist-value 64   #list的成员与值都不太大的时候会采用紧凑格式来存储,相对内存开销也较小

在linux环境运行Redis时,如果系统的内存比较小,这个时候自动备份会有可能失败,需要修改系统的vm.overcommit_memory 参数,这个参数是linux系统的内存分配策略

0 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。

1 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。

2 表示内核允许分配超过所有物理内存和交换空间总和的内存

Redis官方的说明是,建议将vm.overcommit_memory的值修改为1,可以用下面几种方式进行修改:

(1)编辑/etc/sysctl.conf 改vm.overcommit_memory=1,然后sysctl -p 使配置文件生效

(2)sysctl vm.overcommit_memory=1

(3)echo 1 > /proc/sys/vm/overcommit_memory

**2、内存预分配

3、持久化机制**

定时快照:效率不高,会丢失数据

AOF:保持数据完整性(一个实例的数量不要太大2G最大)

优化总结

1)根据业务需要选择合适的数据类型

2)当业务场景不需持久化时就关闭所有持久化方式(采用ssd磁盘来提升效率)

3)不要使用虚拟内存的方式,每秒实时写入AOF

4)不要让REDIS所在的服务器物理内存使用超过内存总量的3/5

5)要使用maxmemory

6)大数据量按业务分开使用多个redis实例

15、Redis集群应用

集群是将多个redis实例集中在一起,实现同一业务需求,或者实现高可用与负载均衡

到底有哪些集群方案呢??

1、haproxy+keepalived+redis集群

1)通过redis的配置文件,实现主从复制、读写分离

2)通过haproxy的配置,实现负载均衡,当从故障时也会及时从集群中T除

3)利用keepalived来实现负载的高可用

2、redis官方Sentinel集群管理工具

Redis集群生产环境高可用方案实战过程

1)sentinel负责对集群中的主从服务监控、提醒和自动故障转移

2)redis集群负责对外提供服务

关于redis sentinel cluster集群配置可参考

3、Redis Cluster

Redis Cluster是Redis的分布式解决方案,在Redis 3.0版本正式推出的,有效解决了Redis分布式方面的需求。Cluster架构可用于实现负载均衡,以解决单机内存、并发和流量等瓶颈问题。

Redis入門知識點有哪些

1)官方推荐,毋庸置疑。

2)去中心化,集群最大可增加1000个节点,性能随节点增加而线性扩展。

3)管理方便,后续可自行增加或摘除节点,移动分槽等等。

4)简单,易上手。

以上是Redis入門知識點有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除
了解NOSQL:Redis的關鍵特徵了解NOSQL:Redis的關鍵特徵Apr 13, 2025 am 12:17 AM

Redis的關鍵特性包括速度、靈活性和豐富的數據結構支持。 1)速度:Redis作為內存數據庫,讀寫操作幾乎瞬時,適用於緩存和會話管理。 2)靈活性:支持多種數據結構,如字符串、列表、集合等,適用於復雜數據處理。 3)數據結構支持:提供字符串、列表、集合、哈希表等,適合不同業務需求。

REDIS:確定其主要功能REDIS:確定其主要功能Apr 12, 2025 am 12:01 AM

Redis的核心功能是高性能的內存數據存儲和處理系統。 1)高速數據訪問:Redis將數據存儲在內存中,提供微秒級別的讀寫速度。 2)豐富的數據結構:支持字符串、列表、集合等,適應多種應用場景。 3)持久化:通過RDB和AOF方式將數據持久化到磁盤。 4)發布訂閱:可用於消息隊列或實時通信系統。

REDIS:流行數據結構指南REDIS:流行數據結構指南Apr 11, 2025 am 12:04 AM

Redis支持多種數據結構,具體包括:1.字符串(String),適合存儲單一值數據;2.列表(List),適用於隊列和棧;3.集合(Set),用於存儲不重複數據;4.有序集合(SortedSet),適用於排行榜和優先級隊列;5.哈希表(Hash),適合存儲對像或結構化數據。

redis計數器怎麼實現redis計數器怎麼實現Apr 10, 2025 pm 10:21 PM

Redis計數器是一種使用Redis鍵值對存儲來實現計數操作的機制,包含以下步驟:創建計數器鍵、增加計數、減少計數、重置計數和獲取計數。 Redis計數器的優勢包括速度快、高並發、持久性和簡單易用。它可用於用戶訪問計數、實時指標跟踪、遊戲分數和排名以及訂單處理計數等場景。

redis命令行怎麼用redis命令行怎麼用Apr 10, 2025 pm 10:18 PM

使用 Redis 命令行工具 (redis-cli) 可通過以下步驟管理和操作 Redis:連接到服務器,指定地址和端口。使用命令名稱和參數向服務器發送命令。使用 HELP 命令查看特定命令的幫助信息。使用 QUIT 命令退出命令行工具。

redis集群模式怎麼搭建redis集群模式怎麼搭建Apr 10, 2025 pm 10:15 PM

Redis集群模式通過分片將Redis實例部署到多個服務器,提高可擴展性和可用性。搭建步驟如下:創建奇數個Redis實例,端口不同;創建3個sentinel實例,監控Redis實例並進行故障轉移;配置sentinel配置文件,添加監控Redis實例信息和故障轉移設置;配置Redis實例配置文件,啟用集群模式並指定集群信息文件路徑;創建nodes.conf文件,包含各Redis實例的信息;啟動集群,執行create命令創建集群並指定副本數量;登錄集群執行CLUSTER INFO命令驗證集群狀態;使

redis怎麼讀取隊列redis怎麼讀取隊列Apr 10, 2025 pm 10:12 PM

要從 Redis 讀取隊列,需要獲取隊列名稱、使用 LPOP 命令讀取元素,並處理空隊列。具體步驟如下:獲取隊列名稱:以 "queue:" 前綴命名,如 "queue:my-queue"。使用 LPOP 命令:從隊列頭部彈出元素並返回其值,如 LPOP queue:my-queue。處理空隊列:如果隊列為空,LPOP 返回 nil,可先檢查隊列是否存在再讀取元素。

redis集群zset怎麼使用redis集群zset怎麼使用Apr 10, 2025 pm 10:09 PM

Redis 集群中使用 zset:zset 是一種有序集合,將元素與評分關聯。分片策略: a. 哈希分片:根據 zset 鍵的哈希值分佈。 b. 範圍分片:根據元素評分劃分為範圍,並將每個範圍分配給不同的節點。讀寫操作: a. 讀操作:如果 zset 鍵屬於當前節點的分片,則在本地處理;否則,路由到相應的分片。 b. 寫入操作:始終路由到持有 zset 鍵的分片。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具