這篇文章為大家帶來了關於Redis的相關知識,其中主要介紹了關於redis的一些基礎知識,redis是內存性數據庫,斷電,數據丟失,進程重啟,數據丟失,下面一起來看一下,希望對大家有幫助。
推薦學習:Redis影片教學
#Redis
##1 .基礎知識
redis是內存性資料庫,斷電,資料遺失,進程重啟,資料遺失需要配置redis的資料持久化,防止資料遺失redis支援ms複製,讀寫分離,防止單點故障,資料遺失1.1.安裝- rpm套件安裝
- yum自動化安裝,在阿里的yum倉庫中,有redis的軟體包
yum install redis -y
- 原始碼編譯安裝
# 1.下载redis源码 wget http://download.redis.io/releases/redis-4.0.10.tar.gz # 2.解压缩 tar -zxf redis-4.0.10.tar.gz # 3.切换redis源码目录 cd redis-4.0.10.tar.gz # 4.编译源文件 make # 5.编译好后,src/目录下有编译好的redis指令 # 6.make install 安装到指定目录,默认在/usr/local/bin make install DESTDIR=/your/dir
用yum安裝的redis,預設設定檔在/etc/redis.conf
- #設定檔參數解釋
# vim /etc/redis.conf #打开如下参数即可# 这里是绑定redis的启动地址,如果你支持远程连接,就改为0.0.0.0bind 0.0.0.0 #更改端口port 6500#设置redis的密码requirepass haohaio#默认打开了安全模式protected-mode yes #打开一个redis后台运行的参数daemonize yes
# 为什么使用systemctl start redis无法连接呢?
# 是因为这个命令默认连接的是6379端口,我们更改了redis端口,因此无法连接了
# 请使用如下的命令,指定配置文件启动
[root@s25linux opt]# redis-server /etc/redis.conf
- 檢查進程狀態
#检查redis的进程 [root@s25linux opt]# ps -ef|grep redis root 6498 1 0 11:42 ? 00:00:00 redis-server 0.0.0.0:6500
# 连接redis服务端,指定ip地址和端口,以及密码连接redis
# -p 指定端口
# -h 指定ip地址
# auth指令,用于密码验证
[root@s25linux opt]# redis-cli -p 6500 -h 192.168.178.143
192.168.178.143:6500> ping
(error) NOAUTH Authentication required.
192.168.178.143:6500> auth haohaio
OK
192.168.178.143:6500> ping
PONG
1.5.常用指令1.keys * 列出redis所有的key
2.type key 查看key类型
3.expire key seconds 过期时间
4.ttl key 查看key过期剩余时间 -2表示key已经不存在了
5.persist 取消key的过期时间 -1表示key存在,没有过期时间
6.exists key 判断key存在 存在返回1 否则0
7.del keys 删除key 可以删除多个
8.dbsize 计算key的数量
2.RDB持久化
#redis 提供了
RDB持久化的功能,這個功能可以將
redis在記憶體中的狀態儲存到硬碟中,它可以
手動執行。
redis.conf中配置,
定期執行。
經過壓縮的二進位檔案,這個檔案被保存在硬碟中,redis可以透過這個檔案還原資料庫當時的狀態。
- 配置rdb機制的資料持久化,資料檔案是一個看不懂的二進位文件,且配置觸發的時間機制vim s25_rdb_redis.conf ,寫入以下內容
daemonize yes #后台运行 port 6379 #端口 logfile /data/6379/redis.log #指定redis的运行日志,存储位置 dir /data/6379 #指定redis的数据文件,存放路径 dbfilename s25_dump.rdb #指定数据持久化的文件名字 bind 127.0.0.1 #指定redis的运行ip地址 #redis触发save指令,用于数据持久化的时间机制 # 900秒之内有1个修改的命令操作,如set .mset,del save 900 1 # 在300秒内有10个修改类的操作 save 300 10 # 60秒内有10000个修改类的操作 save 60 10000
- 建立redis的資料資料夾,
mkdir -p /data/6379
- 殺死先前所有的redis,防止擾亂實驗
[root@s25linux s25redis]# pkill -9 redis
- 指定配置了rdb的redis配置文件,啟動
redis-server s25_rdb_redis.conf
- #如果沒有觸發redis的持久化時間機制,資料檔是不會產生的,數據重啟進程也會遺失
- 可以透過編寫腳本,讓redis手動執行save命令,觸發持久化,在redis命令列中,直接輸入save即可觸發持久化
127.0.0.1:6379> set addr shahe OK 127.0.0.1:6379> 127.0.0.1:6379> set age 18 OK 127.0.0.1:6379> 127.0.0.1:6379> 127.0.0.1:6379> keys * 1) "age" 2) "addr" 3) "name" 127.0.0.1:6379> save OK
- 存在了rdb持久化的檔案之後,重啟redis進程,資料也不會遺失了,redis在重啟之後,會讀取dump.rdb檔案中的資料
#rdb的弊端在於什麼,如果沒有觸發持久化機制,就發生了機器宕機,資料就會遺失了,因此redis有一個更好的aof機制
記錄伺服器執行的所有變更操作命令(例如set del等),並在伺服器啟動時,透過重新執行這些指令來還原資料集
AOF 檔案中的指令全部以redis協定的格式儲存,新指令追加到檔案結尾。
優點:最大程度保證資料不會遺失
缺點:日誌記錄非常大
redis-client 写入数据 > redis-server 同步命令 > AOF文件
- ##新設定文件,配置以下參數。
-
vim s25_aof_redis.conf AOF持久化配置,两条参数 appendonly yes appendfsync always 总是修改类的操作 everysec 每秒做一次持久化 no 依赖于系统自带的缓存大小机制
例如參數配置為 -
daemonize yes port 6379logfile /data/6379aof/redis.logdir /data/6379dbfilename dbmp.rdb requirepass redhat save 900 1save 300 10save 60 10000appendonly yes appendfsync everysec
#建立aof的資料資料夾 -
mkdir -p /data/6379aof
啟動aof的Redis資料庫 -
redis-server s25_aof_redis.conf
aof機制的資料庫,在第一次啟動的時候,就會產生aof資料檔了,如下 -
[root@s25linux 6379aof]# lsappendonly.aof redis.log
- 登入redis,寫入資料
-
[root@s25linux s25redis]# redis-cli127.0.0.1:6379>127.0.0.1:6379>127.0.0.1:6379> keys *(empty list or set)127.0.0.1:6379> set name zhunbeixiakechifan OK127.0.0.1:6379> set name2 xinkudajiale OK127.0.0.1:6379> keys *1) "name2"2) "name"
#寫入的操作,會被記錄到aof檔案日誌中 - 殺死所有的redis進程,且重啟
-
[root@s25linux s25redis]# pkill -9 redis[root@s25linux s25redis]# redis-server s25_aof_redis.conf
redis的aof持久化機制,是在重啟的時候,redis重新執行一遍aof檔案中的命令,實現資料復現 - 如果該aof日誌檔案被刪除,資料也就無法恢復了
- 4.一主一從資料同步複製
4.1.說明
上午的最後一步,演示的是,當我們刪除aof文件,或者是rdb,aof檔案異常損壞,遺失,資料不也沒了嗎?
在一台機器上運行2個以上的redis,是redis支援多實例的功能,基於連接埠號碼的不同,就能夠執行多個相互獨立的redis資料庫
什么是多实例 就是机器上运行了多个redis相互独立的进程 互不干扰的独立的数据库 叫做多个redis数据库的实例,基于配置文件区分即可
如圖是redis的多實例功能,且配置主從同步的圖
#4.2.設定步驟
- 準備好2個redis的設定文件,分別寫入如下內容
-
- vim s25-master-redis.conf
-
port 6379 # 端口 daemonize yes # 后台运行 pidfile /s25/6379/redis.pid # loglevel notice logfile "/s25/6379/redis.log" # 日志存放目录 dbfilename dump.rdb # 持久化文件名 dir /s25/6379 # 数据文件保存的路径 protected-mode no # 打开安全模式
vim s25-slave-redis .conf -
port 6389 daemonize yes pidfile /s25/6389/redis.pid loglevel notice logfile "/s25/6389/redis.log" dbfilename dump.rdb dir /s25/6389 protected-mode no # 可以直接在配置文件中,定义好复制关系,启动后,立即就会建立复制 slaveof 127.0.0.1 6379
#分別產生2個redis的資料夾 -
mkdir -p /s25/{6379,6389}
-
分别启动2个redis数据库。
[root@s25linux s25redis]# redis-server s25-master-redis.conf [root@s25linux s25redis]# [root@s25linux s25redis]# [root@s25linux s25redis]# redis-server s25-slave-redis.conf
-
分别检查他们的进程,以及复制关系
[root@s25linux s25redis]# redis-cli -p 6379 info replication [root@s25linux s25redis]# redis-cli -p 6389 info replication # 通过一条命令,配置他们的复制关系,注意,这个命令只是临时配置redis的复制关系, # 想要永久修改,还得修改配置文件 redis-cli -p 6389 slaveof 127.0.0.1 6379
-
配置完毕说明
此时 6379 ==== 主库 6389 ==== 从库 此时可以向6379中写入数据,能够同步到6389中 6389是一个只读的数据库,无法写入数据
5.一主多从及主从复制故障切换
5.1.一主多从配置
-
再创建一个配置文件,port是6399,且加入到一主一从的复制关系中去
# vim s25-salve2-redis.conf port 6399daemonize yes pidfile /s25/6399/redis.pid loglevel notice logfile "/s25/6399/redis.log"dbfilename dump.rdbdir /s25/6399protected-mode no slaveof 127.0.0.1 6379
-
创建数据文件夹
mkdir -p /s25/6399
-
此时可以启动6399的数据库,查看他的身份复制关系
[root@s25linux s25redis]# redis-cli -p 6399 info replication
5.2.故障切换
-
故障模拟
-
环境准备,准备3个redis的数据库实例,分别是 6379(主)、6389(从1)、6399(从2),配置好一主两从的关系
[root@s25linux s25redis]# ps -ef|grep redis root 11294 1 0 15:19 ? 00:00:01 redis-server *:6379 root 11310 1 0 15:19 ? 00:00:01 redis-server *:6389 root 11620 1 0 15:33 ? 00:00:00 redis-server *:6399
-
分别查看复制关系
[root@s25linux s25redis]# redis-cli -p 6379 info replication # Replication role:master connected_slaves:2 slave0:ip=127.0.0.1,port=6389,state=online,offset=1883,lag=1 slave1:ip=127.0.0.1,port=6399,state=online,offset=1883,lag=1
-
此时模拟故障,直接kill掉主库
kill -9 11294
-
此时留下2个孤零零的从库,没有了主人,还没发写入数据,很难受
此时一位从库(6399),不乐意了,翻身农奴做主人,去掉自己的从库身份,
没有这个从库的枷锁,我就是我自己的主人
[root@s25linux s25redis]# redis-cli -p 6399 slaveof no one
-
此时6399已然是主库了,修改6389的复制信息,改为6399即可
[root@s25linux s25redis]# redis-cli -p 6389 slaveof 127.0.0.1 6399
-
此时检查他们的复制关系
[root@s25linux s25redis]# redis-cli -p 6389 info replication[root@s25linux s25redis]# redis-cli -p 6399 info replication
此时可以向主库6399写入数据,6389查看数据即可
主库不挂,从库挂掉的场景
从库挂掉,无所谓,重新再建立一个从库,加入主从复制即可,。,。
你会发现,如此的手动切换复制关系,其实是很难受的,如果在夜里凌晨四点,redis主库突然挂了,你该怎么办?你媳妇愿意让你起来干活吗?
因此你该咋办?是不是得学点别的技术?你希望有什么东西能帮你不?
- 有钱,你搞一个贾维斯
- 希望有一个人,能24h帮你盯着这个主从复制,发现主库宕机之后,自动的帮你进行主从切换
6.高可用哨兵 sentinel
6.1.工作原理
配置好redis的哨兵进程,一般都是使用3个哨兵(保安) 哨兵的作用是盯着redis主库,不断询问它是否存活,如果超过30s(设置的时间阈值)都没有回应,3个哨兵会判断主库宕机,谈话进行投票机制, 因为3个哨兵,要自动的去选择从库为新的主库,每个哨兵的意见可能不一样,因此引出投票机制,少数服从多数。 当多个哨兵达成一致,选择某一个从库阶段,自动的修改他们的配置文件,切换新的主库 此时如果宕机的主库,恢复后,哨兵也会自动将其加入集群,且自动分配为新的从库 这一些都是自动化,无需人为干预,贼牛屁
6.2.架构
6.3.Redis配置
-
准备3个redis节点,1主2从的redis集群
# redis支持多实例-------基于多个配置文件,运行处多个redis相互独立的进程 s25-redis-6379.conf -----主 port 6379 daemonize yes logfile "6379.log" dbfilename "dump-6379.rdb" dir "/var/redis/data/" s25-redis-6380.conf------从1 port 6380 daemonize yes logfile "6380.log" dbfilename "dump-6380.rdb" dir "/var/redis/data/" slaveof 127.0.0.1 6379 s25-redis-6381.conf-----从2 port 6381 daemonize yes logfile "6381.log" dbfilename "dump-6381.rdb" dir "/var/redis/data/" slaveof 127.0.0.1 6379 # 查看3个配置文件,准备分别启动该进程 [root@s25linux s25sentinel]# ls s25-redis-6379.conf s25-redis-6380.conf s25-redis-6381.conf
-
创建数据存储文件夹
mkdir /etc/redis/data
-
分别启动3个进程后,检查进程情况
[root@s25linux s25sentinel]# redis-server s25-redis-6379.conf [root@s25linux s25sentinel]# redis-server s25-redis-6380.conf [root@s25linux s25sentinel]# redis-server s25-redis-6381.conf [root@s25linux s25sentinel]# ps -ef|grep redis root 20413 1 0 08:45 ? 00:00:00 redis-server *:6379 root 20417 1 0 08:45 ? 00:00:00 redis-server *:6380 root 20422 1 0 08:45 ? 00:00:00 redis-server *:6381
-
确定3个库的主从关系
[root@s25linux s25sentinel]# redis-cli -p 6379 info replication # Replication role:master connected_slaves:2 slave0:ip=127.0.0.1,port=6380,state=online,offset=183,lag=1 slave1:ip=127.0.0.1,port=6381,state=online,offset=183,lag=1
6.4.sentinel 配置
-
分别准备3个哨兵的配置文件,修改如下,三个哨兵的配置文件,仅仅是端口号的不同
# vim s25-sentinel-26379.conf port 26379 dir /var/redis/data/ logfile "26379.log" // 当前Sentinel节点监控 192.168.119.10:6379 这个主节点 // 2代表判断主节点失败至少需要2个Sentinel节点节点同意 // mymaster是主节点的别名 sentinel monitor mymaster 127.0.0.1 6379 2 // 每个Sentinel节点都要定期PING命令来判断Redis数据节点和其余Sentinel节点是否可达, // 如果超过30000毫秒30s且没有回复,则判定不可达 sentinel down-after-milliseconds s25msredis 30000 // 当Sentinel节点集合对主节点故障判定达成一致时,Sentinel领导者节点会做故障转移操作,选出新的主节点, // 原来的从节点会向新的主节点发起复制操作,限制每次向新的主节点发起复制操作的从节点个数为1 sentinel parallel-syncs mymaster 1 //故障转移超时时间为180000毫秒 sentinel failover-timeout mymaster 180000 daemonize yes # ======================================================================== # vim s25-sentinel-26380.conf port 26380 dir /var/redis/data/ logfile "26380.log" sentinel monitor mymaster 127.0.0.1 6379 2 sentinel down-after-milliseconds mymaster 30000 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000 daemonize yes # ======================================================================== # s25-sentinel-26381.conf port 26381 dir /var/redis/data/ logfile "26381.log" sentinel monitor mymaster 127.0.0.1 6379 2 sentinel down-after-milliseconds mymaster 30000 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000 daemonize yes
-
分别启动3个哨兵进程,以及查看进程信息
# 1.启动哨兵进程 [root@s25linux s25sentinel]# redis-sentinel s25-sentinel-26379.conf [root@s25linux s25sentinel]# redis-sentinel s25-sentinel-26380.conf [root@s25linux s25sentinel]# redis-sentinel s25-sentinel-26381.conf # 2.查看进程信息 [root@s25linux s25sentinel]# ps -ef|grep redis root 20413 1 0 08:45 ? 00:00:00 redis-server *:6379 root 20417 1 0 08:45 ? 00:00:00 redis-server *:6380 root 20422 1 0 08:45 ? 00:00:00 redis-server *:6381 root 20614 1 0 08:55 ? 00:00:00 redis-sentinel *:26379 [sentinel] root 20618 1 0 08:55 ? 00:00:00 redis-sentinel *:26380 [sentinel] root 20622 1 0 08:55 ? 00:00:00 redis-sentinel *:26381 [sentinel]
-
可以检查哨兵的配置文件,以及哨兵的状态
[root@s25linux s25sentinel]# redis-cli -p 26379 info sentinel # Sentinel sentinel_masters:1 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 sentinel_simulate_failure_flags:0 master0:name=s25msredis,status=ok,address=127.0.0.1:6379,slaves=2,sentinels=3
6.5.模拟故障
在哨兵搭建好了之后,模拟干掉主库,然后等待主从的一个自动化切换
-
检查6379的进程,杀死后,哨兵能够自动的,进行投票选举,
剩下来的一个slave为新的master,然后重新分配主从关系
故障的修复,修复6379这个redis数据库,且检查它的一个复制关系
6379数据库会重新假如到主从复制,且变为一个新的从库如果你想恢复他们的主从关系,全部kill掉,重新启动,默认就会以配置文件分配主从关系了
7.redis-cluster搭建
7.1.准备节点
准备好6匹马儿,也就是6个redis节点,也就是6个配置文件,redis集群节点最少是使用6个
这6个配置文件,仅仅是端口号的不同而已
-
根目录下创建 s25rediscluster 文件夹用于实验
mkdir /s25rediscluster
-
s25-redis-7000.conf
port 7000 daemonize yes dir "/opt/redis/data" logfile "7000.log" dbfilename "dump-7000.rdb" cluster-enabled yes #开启集群模式 cluster-config-file nodes-7000.conf #集群内部的配置文件 # redis cluster需要16384个slot都正常的时候才能对外提供服务, # 换句话说,只要任何一个slot异常那么整个cluster不对外提供服务。 因此生产环境一般为no cluster-require-full-coverage no
-
使用sed命令快捷生成其他的配置文件
# s25-redis-7001.conf # s25-redis-7002.conf # s25-redis-7003.conf # s25-redis-7004.conf # s25-redis-7005.conf # 使用以下命令快捷创建 sed 's/7000/7001/g' s25-redis-7000.conf > s25-redis-7001.conf sed 's/7000/7002/g' s25-redis-7000.conf > s25-redis-7002.conf sed 's/7000/7003/g' s25-redis-7000.conf > s25-redis-7003.conf sed 's/7000/7004/g' s25-redis-7000.conf > s25-redis-7004.conf sed 's/7000/7005/g' s25-redis-7000.conf > s25-redis-7005.conf
-
创建数据文件夹
mkdir -p "/opt/redis/data"
-
分别启动6个redis节点,且检查进程
redis-server s25-redis-7000.conf redis-server s25-redis-7001.conf redis-server s25-redis-7002.conf redis-server s25-redis-7003.conf redis-server s25-redis-7004.conf redis-server s25-redis-7005.conf
-
此时是不能写入数据的
# 此时你尝试着写入数据,看一看是否能写进去,不能写入数据,还没有分配虚拟槽# 我们仅仅是启动了6个redis节点,准备好了6匹马儿,马儿身上的筐还没分配,你想
7.2.ruby配置
-
直接yum安装ruby解释器ruby和python一样是一个解释性编程语言,日本大神开发的
# gem是ruby的包管理工具 # ruby ===== python # gem ===== pip3 # 方法1:yum安装: yum install ruby -y # 方法2:编译安装的话使用: wget .... tar .... ./configure --prefix=/opt/ruby/ make && make install
-
检查ruby和gem的环境
[root@s25linux s25rediscluster]# ruby -v ruby 2.0.0p648 (2015-12-16) [x86_64-linux] [root@s25linux s25rediscluster]# gem -v 2.0.14.1
-
下载ruby操作redis的模块,用于创建集群
wget http://rubygems.org/downloads/redis-3.3.0.gem
-
用gem安装此模块,ruby就可以操作redis数据库了
gem install -l redis-3.3.0.gem #就如同python的 pip3 install xxxx,不难理解 #可以查看gem有哪些包 gem list -- check redis gem
-
搜索ruby创建redis集群的脚本,然后将其加入到环境变量中
# redis-trib.rb 如何知道它的绝对路径? # which 是搜索PATH环境变量中的命令的绝对路径! # find 才是搜索系统上的文件路径!! find / -name "redis-trib.rb" #默认会在redis数据库的编译安装路径下 # 将创建集群的脚本加入到环境变量,比方说你的脚本位置在 /opt/redis/src/redis-trib.rb,然后将其复制到任一环境变量中。 cp /opt/redis/src/redis-trib.rb /usr/local/bin/
-
一键创建集群,且自动分配槽位,可以写入数据了。集群会自动分配主从关系。
# 每个主节点,有一个从节点,代表--replicas 1 redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
-
此时可以查看及检查下集群的状态
-
查看状态
redis-cli -p 7000 cluster info redis-cli -p 7000 cluster nodes #等同于查看nodes-7000.conf文件节点信息 # 集群主节点状态 redis-cli -p 7000 cluster nodes | grep master # 集群从节点状态 redis-cli -p 7000 cluster nodes | grep slave
-
检查状态
[root@yugo /opt/redis/src 18:42:14]#redis-cli -p 7000 cluster info cluster_state:ok cluster_slots_assigned:16384 cluster_slots_ok:16384 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:6 cluster_size:3 cluster_current_epoch:6 cluster_my_epoch:1 cluster_stats_messages_ping_sent:10468 cluster_stats_messages_pong_sent:10558 cluster_stats_messages_sent:21026 cluster_stats_messages_ping_received:10553 cluster_stats_messages_pong_received:10468 cluster_stats_messages_meet_received:5 cluster_stats_messages_received:21026
-
-
进入集群写入数据,查看数据重定向
# 测试写入集群数据,登录集群必须使用redis-cli -c -p 7000必须加上-c参数 redis-cli -c -p 7000 127.0.0.1:7000> set name chao -> Redirected to slot [5798] located at 127.0.0.1:7001 OK 127.0.0.1:7001> exit [root@yugo /opt/redis/src 18:46:07]#redis-cli -c -p 7000 127.0.0.1:7000> ping PONG 127.0.0.1:7000> keys * (empty list or set) 127.0.0.1:7000> get name -> Redirected to slot [5798] located at 127.0.0.1:7001 "chao"
工作原理:
redis客户端任意访问一个redis实例,如果数据不在该实例中,通过重定向引导客户端访问所需要的redis实例
以上内容大部分来源于路飞学城于超老师博客,个人做了精简与完善,如有侵权请联系。
推荐学习:Redis视频教程
以上是基礎詳解之Redis的使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Redis的數據庫方法包括內存數據庫和鍵值存儲。 1)Redis將數據存儲在內存中,讀寫速度快。 2)它使用鍵值對存儲數據,支持複雜數據結構,如列表、集合、哈希表和有序集合,適用於緩存和NoSQL數據庫。

Redis是一個強大的數據庫解決方案,因為它提供了極速性能、豐富的數據結構、高可用性和擴展性、持久化能力以及廣泛的生態系統支持。 1)極速性能:Redis的數據存儲在內存中,讀寫速度極快,適合高並發和低延遲應用。 2)豐富的數據結構:支持多種數據類型,如列表、集合等,適用於多種場景。 3)高可用性和擴展性:支持主從復制和集群模式,實現高可用性和水平擴展。 4)持久化和數據安全:通過RDB和AOF兩種方式實現數據持久化,確保數據的完整性和可靠性。 5)廣泛的生態系統和社區支持:擁有龐大的生態系統和活躍社區,

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

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

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

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

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

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


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Linux新版
SublimeText3 Linux最新版

Dreamweaver CS6
視覺化網頁開發工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中