redis

本文介绍了Redis的基本操作,包括数据类型的设置、获取、删除等命令,以及数据库的选择和清空。此外,详细讲解了Redis的持久化方式RDB和AOF,以及如何配置Redis集群和哨兵模式,实现主从复制和故障转移。最后,提到了Redis的集群搭建,包括去中心化的三主三从配置。
摘要由CSDN通过智能技术生成

redis 非关系数据库加基本命令和数据类型

准备工作:首先安装图形化界面,
我这里安装包为redisplus-3.0.1-exe-x86_64.exe,如有需要可去官网下载
1.配置
这里默认redis不允许远程连接,所以我们必须改成可允许,如下:
在这里插入图片描述
使用vim redis.conf编辑
在这里插入图片描述
2.图形化连接(图形化很简单,这里就不再做介绍,直接在xshell里边输入命令)
在这里插入图片描述
2.基本命令
(1)启动redis(要保证在后台运行)
在这里插入图片描述
一定要关闭防火墙

systemctl stop firewalld.service

(2) 基本命令
代码如下:

[root@localhost ~]# cd /usr/local/redis-5.0.8
[root@localhost redis-5.0.8]# systemctl stop firewalld.service
[root@localhost redis-5.0.8]# redis-cli
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> set k2 v2
OK
127.0.0.1:6379> keys *
1) "k2"
2) "k1"
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> get k2
"v2"
127.0.0.1:6379> del k1
(integer) 1
127.0.0.1:6379> expire k2 100
(integer) 1
127.0.0.1:6379> ttl k2
(integer) 93
127.0.0.1:6379> ttl k2
(integer) 71
127.0.0.1:6379> ttl k2
(integer) 37
127.0.0.1:6379> ttl k2
(integer) 2
127.0.0.1:6379> ttl k2
(integer) -2

在这里插入图片描述

(2)对数据库进行操作 (一般默认有16个数据库)
select index:选择数据库
flushdb:清空当前所在的库
flushall:清空所有的库
在这里插入图片描述
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> set k2 v2
OK
127.0.0.1:6379> keys *

  1. “k2”
  2. “k1”
    127.0.0.1:6379> get k1
    “v1”
    127.0.0.1:6379> get k2
    “v2”
    127.0.0.1:6379> del k1
    (integer) 1
    127.0.0.1:6379> expire k2 100
    (integer) 1
    127.0.0.1:6379> ttl k2
    (integer) 93
    127.0.0.1:6379> ttl k2
    (integer) 71
    127.0.0.1:6379> ttl k2
    (integer) 37
    127.0.0.1:6379> ttl k2
    (integer) 2
    127.0.0.1:6379> ttl k2
    (integer) -2
    127.0.0.1:6379>
    [root@localhost redis-5.0.8]# redis-cli
    127.0.0.1:6379> clear
    127.0.0.1:6379> select 0
    OK
    127.0.0.1:6379> set k1 v1
    OK
    127.0.0.1:6379> select 1
    OK
    127.0.0.1:6379[1]> set k2 v2
    OK
    127.0.0.1:6379[1]> select 2
    OK
    127.0.0.1:6379[2]> set k3 v3
    OK
    127.0.0.1:6379[2]> keys *
  3. “k3”
    127.0.0.1:6379[2]> flushdb
    OK
    127.0.0.1:6379[2]> keys *
    (empty list or set)
    127.0.0.1:6379[2]> select 1
    OK
    127.0.0.1:6379[1]> keys *
  4. “k2”
    127.0.0.1:6379[1]> flushall
    OK
    127.0.0.1:6379[1]> keys *
    (empty list or set)
    127.0.0.1:6379[1]> select 0
    OK
    127.0.0.1:6379> keys *
    (empty list or set)
String类型

(1) mset: mset key value [key value …]
(2) mget: mget key [key …]
(3) setnx: setnx key value
(4) incr:incr key
(5) decr:decr key

setnx是比较特殊的一种,它表示如果设置的值已经存在,则会显示之前设置的值,而不会覆盖,若是值不存在,则会设置新的key和value值
在这里插入图片描述
代码如下:

127.0.0.1:6379> mset k1 1 k2 2 k3 3 
OK
127.0.0.1:6379> mget k1 k2 k3 
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> setnx k3 4
(integer) 0
127.0.0.1:6379> get k3
"3"
127.0.0.1:6379> setnx k4 4
(integer) 1
127.0.0.1:6379> get k4
"4"
127.0.0.1:6379> incr k4
(integer) 5
127.0.0.1:6379> incr k4
(integer) 6
127.0.0.1:6379> incr k4
(integer) 7
127.0.0.1:6379> decr k4
(integer) 6
127.0.0.1:6379> decr k4
(integer) 5
127.0.0.1:6379> decr k4
(integer) 4

List列表数据,值为列表

(1) lpush:lpush key value [value …]
(2) lrange:lrange key start stop
(3) lpop:key
(4) rpop:key
在这里插入图片描述
代码如下:

127.0.0.1:6379> lpush k1 1 2 3 4 5 
(integer) 5
127.0.0.1:6379> lrange k1 0 4 
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:6379> lpop k1
"5"
127.0.0.1:6379> lrange k1 0 4
1) "4"
2) "3"
3) "2"
4) "1"
127.0.0.1:6379> rpop k1
"1"
127.0.0.1:6379> lrange k1 0 4
1) "4"
2) "3"
3) "2"

hash散列数据类型 value的值为 map数据结构

(1)hset:hset key field value
(2)hget:hget key field
(3)hkeys:hkeys key
(4)hvals:hvals key
(5)hgetall:hgetall key
(6)hdel:hdel key field [field …]
在这里插入图片描述

127.0.0.1:6379> hset k1 name zs
(integer) 1
127.0.0.1:6379> hset k1 sex nv
(integer) 1
127.0.0.1:6379> hset k1 age 18
(integer) 1
127.0.0.1:6379> hget k1 name
"zs"
127.0.0.1:6379> hkeys k1
1) "lisrt"
2) "name"
3) "sex"
4) "age"
127.0.0.1:6379> hvals k1
1) "1"
2) "zs"
3) "nv"
4) "18"
127.0.0.1:6379> hgetall k1
1) "lisrt"
2) "1"
3) "name"
4) "zs"
5) "sex"
6) "nv"
7) "age"
8) "18"
127.0.0.1:6379> hdel k1 sex nv
(integer) 1
127.0.0.1:6379> hgetall k1
1) "lisrt"
2) "1"
3) "name"
4) "zs"
5) "age"
6) "18"
set集合:value类型为集合类型,值不能重复

(1)sadd:sadd key member [member …
(2)smembers:smembers key
(3)sinter:sinter key [key …]
(4)sunion:sunion key [key …]
(5)spop:spop key [count]

在这里插入图片描述

sorted set 有序集合类型

它和set的区别就是增加了一个新的score字段
(1)zadd:zadd key [NX|XX] [CH] [INCR] score member [score member …]
(2)zrange:zrange key start stop [WITHSCORES]
(3)zrevrange:zrevrange key start stop [WITHSCORES]
在这里插入图片描述

二、redis集群+持久化

小贴士:开启redis后台启动
vim redis.conf
在这里插入图片描述
在这里插入图片描述

一、持久化方式(两种)

redis持久化方式分为两种,分别是RDB和

1.RDB持久化

rdb一般默认为dump.rdb,而pdb的触发方式一般有三种

(1)save触发

在这里插入图片描述

(2)bgsave触发

在这里插入图片描述

save和bgsave区别
save命令执行的是同步保存操作,会阻塞当前Redis服务器,执行命令期间不能执行其他命令,直到RDB过程完成为止。bgsave执行该命令时,Redis会在后台异步进行快照操作,再执行期间,还能执行其他命令。

(3)配置文件触发

通过vim redis.conf命令可以设配置文件
在这里插入图片描述

在这里插入图片描述

2.AOF持久化方式

默认没有开启,需要手动配置启动

在这里插入图片描述

手动配置触发条件

在这里插入图片描述
当用set或mset命令进行写的操作是会根据你配置的aof触发类型自动放入appendonly.aof文件
查看aof命令

[root@localhost redis-5.0.8]# cat appendonly.aof

在这里插入图片描述

二、redis的集群

搭建redis主从关系

配置主从关系(80主,81和82都是从)
先在redis下边新建一个主从文件夹
mkdir masterSlave

在这里插入图片描述

复制三份redis.conf到masterSlave文件夹,并命名为80,81,82

在这里插入图片描述

利用vim进入到刚复制的三个redis.conf,并更改相对应的port(这里以80为例,其他一样,就不一一截图了)(只需更改两处即可)
(1)port更改

在这里插入图片描述

(2)修改rdb文件路径

在这里插入图片描述

启动端口不同的redis

在这里插入图片描述

分别连接不同的redis服务

(1)使三个主从文件同时进入masterSlave文件夹

cd /usr/local/redis-5.0.8/masterSlave/

在这里插入图片描述
(2)利用下面命令进行连接

redis-cli -p 端口号

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)查看三个redis关系
查看命令

info replication

在这里插入图片描述
其他两个的关系从属都是master,这里可以看出此时这三个没有任何主从关系。这里就不一一截图了
(4)设置主从关系(80主,81和82从)

slaveof 地址 端口号

81
在这里插入图片描述
82
在这里插入图片描述
80(主)
在这里插入图片描述

三、搭建哨兵模式

配置哨兵(一般默认在sentinel.conf文件)

在80(主)中利用vim sentinel.conf命令更改配置文件

在这里插入图片描述

启动哨兵

在这里插入图片描述

让80宕机进行测试
shutdown

80(已经宕机后的结果)
在这里插入图片描述
81(从)
在这里插入图片描述
82(已经成为“主”)
在这里插入图片描述
要想让80回来,必须重新启动,但即使回来也只能成为“从"

 redis-server redis6380.conf

在这里插入图片描述

四、redis集群搭建—去中心化

配置三主三从(1为主,2为从)
分别为
7001 7002
8001 8002
9001 9002
(1)创建文件夹

[root@localhost redis-5.0.8]# mkdir redisCluster
[root@localhost redis-5.0.8]# cp redis.conf redisCluster/
[root@localhost redis-5.0.8]# cd redisCluster/

在这里插入图片描述
(2)复制文件并更改以下内容
利用vim 命令编辑以下内容(这里以7001为例其他只需把7001改成相对应数据就行)
port 7001
daemonize yes
dbfilename dump7001.rdb
appendonly yes 必须有aof持久化
appendfilename “appendonly7001.aof”
开启集群
cluster-enabled yes
集群的配置文件,该文件自动生成
cluster-config-file nodes-7001.conf
创建文件有以下:
在这里插入图片描述
(3)把上边配置六个文件全启动(以7001为例)

[root@localhost redisCluster]# redis-server redis7001.conf 

在这里插入图片描述
查看启动状态
在这里插入图片描述
redis分配主从关系以及槽

redis-cli --cluster create --cluster-replicas 1 192.168.253.3:7001 192.168.253.3:8001 192.168.253.3:9001  192.168.253.3:7002  192.168.253.3:8002 192.168.253.3:9002

在这里插入图片描述
客户端访问:

 redis-cli -c -h 127.0.0.1 -p 7001

在这里插入图片描述
必须保证aof开启,保证redis中没有数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值