Redis学习笔记

81 阅读5分钟

简介

  1. 主要的数据类型
  • 字符串 String

  • 列表 List

  • 集合 Set

  • 有序集合 SortedSet

  • 哈希 Hash

  1. 使用方式
  • CLI 命令行调用

  • API 代码调用

  • GUI 图形界面调用

  1. 主要优势
  • 性能极高

  • 数据类型丰富,单键值对最大支持512M大小的数据

  • 简单易用,支持所有主流的编程语言

  • 支持数据持久化,主从复制,哨兵模式等高可用特性

安装配置

mac安装:在系统命令行输入

1.下载redis
brew install redis

2.启动服务
redis-server

3.停止服务
ctrl +c

4.启动客户端
redis-cli

打开新终端的快捷键
command + N

RedisInsinght的使用

操作redis的GUI工具

redis官网:redis.io/downloads/#…

字符串 String

默认使用字符串存储数据

Redis的键值默认支持二进制,不支持中文,要设置中文可以在启动客户端的时候,添加--raw,显示原始数据

1.添加字符串
SET key value

2.查找对应的数据
GET key 

3.clear清空屏幕

4.查看键的过期时间
TTL 键

5.expire 键 时间
设置过期时间

6.setnx 只有当键不存在的时候才设置键的值

列表 List

是基于双向链表(ziplist 压缩列表为小数据优化) 实现的有序、可重复、支持首尾高效操作(O (1))、中间操作低效(O (n))的字符串元素集合,可作为队列 / 栈 / 消息队列使用。

1.将数值添加到头部或者尾部 LPUSH RPUSH
LPUSH key value

2.获取列表内容
从第一个字母开始获取,到最后一个元素
LRANGE key 0 -1

3.删除元素
删除前两个元素
LPOP key 数值

集合 Set

无序集合,元素不可以重复

1.添加元素
SADD key value

2.查询元素
SMEMBERS key

有序集合 SortSet

  1. 特点
  • 有序集合的成员是唯一的
  • 但是分数可以重复
  • 有序集合中的排序是按照从小到大排序的
1.添加元素
ZADD key value

2.查看元素 
ZRANGE key 0 -1

3.查看排名
ZRANK key value中的元素

哈希 hash

键值对的集合,适合用来存储对象

1.添加键值对
HSET key value

发布订阅模式

  1. 命令
 1.发布信息到指定的频道
 publish 
 
 2.订阅一个频道
 subscribe
  1. 使用
1.打开一个终端,订阅频道(订阅频道的终端有多个)
subscribe xx

2.打开另一个终端,发布信息
publish xx xx
回车后可以看到第一个终端收到了信息

消息队列 Stream

  • 是轻量级的消息队列,可以解决消息无法持久化,无法记录历史信息的问题
  • 命令都以X开头
1.添加信息 XADD key id value
XADD shopping * eat apple
* 表示id,返回时自动生成

2.查看数据 XRANGE key - +

3.删除消息 XDEL key id

4.消息创建后消费 XREAD COUNT x BLOCK 1000 STREAMS key 0
从头开始读取消息队列,一次读取x条消息,如果没有消息的话就阻塞1000毫秒

5.创建消费者组XGROUP CREATE key group1 0

Redis 事务

MUTLTI 开启事务
SET
LPUSH
SADD
EXEC 执行事务的所有命令

特点

  • 在执行exec命令之前,所有的命令都放在队列中,不会立即执行

  • 收到exec命令后事务开始执行,事务中的任一个命令执行失败,其他命令依旧会执行

  • 在命令的执行过程中,其他客户端的命令不会插入到队列中

持久化

  1. 问题

基于内存的数据库,如果没有持久化,一旦服务器重启或者断电,之前所有的数据都会丢失

  1. 两种方式

RDB

  • 在指定的时间间隔内将数据写入磁盘,是某一个时间点上的完整副本,可以通过配置文件(redis.conf)中的save参数来设置

  • 适合用来做备份

AOF

  • 实行写命令的时候,不仅会将写命令写入到内存,还会将写命令追加到一个文件中(AOF),以日志的形式记录每一个写操作

  • 开启配置:将配置文件中的appendonly参数的值改为yes

主从复制

  1. 是什么:将一台服务器的数据复制到其他服务器,一个主节点可以有多个从节点,每个从节点只能有一个主节点

  2. 修改从节点的两种方式

1.查看当前节点角色 role

2.配置所属主节点
replicaof host port
slaveof host port
  1. 修改配置文件
1.在redis的安装目录下,把redis.conf复制到根目录下,作为主节点的配置文件
cp redis.conf ~

2.回到根目录,再复制一份6380的配置文件,作为从节点的配置文件
cp redis.conf redis-6380.conf

3.改动配置文件参数
port 6380
pidfile 6380
dbfilename dump-6380.rdb
replicaof 127.0.0.1 6379

5.启动新的服务器
redis-server redis-6380.conf

6.开启新的终端,开启从节点
redis-cli -p 6380

7.查看节点状态
info replication

哨兵模式 Sentinel

  1. 作用
  • 监控:通过不断发送命令,检查redis是否正常

  • 通知:某个节点出问题,通过发布订阅模式通知其他节点

  • 自动故障转移:主节点不能工作的时候,会开启自动转移的操作

1.添加配置文件 sentinel.conf,在文件添加如下配置
sentinel monitor master host port 1
有一个哨兵节点统一就可以进行故障转移

2.启动哨兵节点
redis-sentinel sentinel.conf