Redis笔记

Redis笔记

1、Redis数据结构

KEY

VALUE

字符串(string)

列表(list)

集合(set)

哈希(hash)

有序集合(sorted set)

2、List数据结构

3、hash数据结构

KEY

VALUE

stuName

tom

stuAge

20

stuSubject

java

页面:JSON

{"stuName":"tom","stuAge":"20","stuSubject":"java"}

Java程序:对象

public class Stu {

private String stuName;

private String stuSubject;

private Integer stuAge;

……

}

 

Map

Map<String,String> map = new HashMap();

map.put("stuName","tom");

……

Redis:HASH

……

※特殊说明:Redis的HASH类型不支持嵌套。

嵌套JSON:{

"stuName":"tom",

"stuAge":"20",

"stuSubject":"java",

"address":{

"country":"China",

"province":"GuangDong",

"city":"shenzhen"

}

}

 

HASH:

"stuName":"tom"

"stuAge":"20"

"stuSubject":"java"

"address":"{"country":"China","province":"GuangDong","city":"shenzhen"}"

4、zset数据结构

KEY

VALUE

胖胖

30

妞妞

32

二刘

58

5、持久化

5.1、RDB

每隔一定时间,将内存中的数据保存到硬盘上。

假设5秒保存一次。

  • AOF
  • 基本工作方式

把每一个修改数据的命令保存到硬盘上。

set num 5

incr num

incrby num 6

 

  • 三种保存策略
    1. 每一条修改数据的命令都保存到硬盘上
    2. 每一秒保存一次
    3. 不保存
  • AOF重写
    1. 当AOF文件体积增加到一定程度后,可以把过程性命令删除。
    2. 原始命令

set num 5

incr num

incrby num 6

5.2、精简后命令

set num 12

5.3、总体策略

一般来讲,在实际项目运行过程中,放到Redis中的数据,通常都是允许出现细微出入;非常重要不允许出现任何误差的数据不建议放在Redis中。

Redis中保存数据应该尽可能追求更好性能,而不是数据的绝对安全。

6、乐观锁和悲观锁

6.1、悲观锁

在执行某一个操作之前,基于当前场景经常对数据发生修改操作的事实,判断当前操作也有很大可能性会被干扰,所以操作执行前把数据锁定,我在修改时不允许其他操作修改。

6.2、乐观锁

在执行某一个操作之前,基于当前场景很少对数据发生修改操作的事实,判断当前操作也不太可能性会被干扰,所以操作执行前不会把数据锁定,我在修改时万一发生其他操作修改我数据的情况,我就放弃自己本次操作。

Redis采取乐观锁策略,不支持悲观锁。

6.3、读写分离集群

6.4、哨兵模式

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值