Redis

Redis(远程字典服务器)

  • 防止在高并发的情况,一瞬间成千上万的请求到来,需要系统在极短的时间内完成成千上万次的读/写操作,这个时候往往不是数据库能够承受的,极其容易造成数据库系统瘫痪,最终导致服务宕机的严重生产问题。
  • Redis可以支持每秒十几万此的读/写操作,其性能远超数据库,并且还支持集群、分布式、主从同步等配置,原则上可以无限扩展,让更多的数据存储在内存中,更让人欣慰的是它还支持一定的事务能力,这保证了高并发的场景下数据的安全和一致性。
  • Redis采用的是K-V模型存储数据的。
  • 默认占6379端口

Redis 在 Java Web 中的应用

  • 存储 缓存 用的数据;
  • 需要高速读/写的场合使用它快速读/写
  • 们把数据放在 Redis 中,也就是直接放在内存之中,让服务端直接去读取内存中的数据,那么这样速度明显就会快上不少,并且会极大减小数据库的压力。
  • 但是使用内存进行数据存储开销也是比较大的,所以我们只是使用 Redis 存储一些常用和主要的数据,比如用户登录的信息等。

Redics使用中需要考虑的问题

  • 业务数据是否常用。
  • 该业务数据是读操作多,还是写操作多?如果写操作多,频繁需要写入数据库,也没有必要使用缓存;
  • 业务数据的大小,若果过于大,也没必要使用,会给缓存带来很大的压力。

Redis的特点

  • 数据持久化
  • 支持多种数据结构
  • 支持数据备份

使用逻辑图

在这里插入图片描述

  • 第一次读取数据时,读取Redis会失败,然后去读取数据库中的数据,然后把读取到的数据写入到Redis中。
  • 第二次读取数据时,直接读取Redis中的数据。
  • 如果业务数据写次数远大于读次数那么就没有必要使用 Redis。

案例(秒杀商品)

在这里插入图片描述

  • 发送请求,读取redis。
  • 判断读写业务是否结束(当商品数量为0时,则成立)
  • 如果不成立则不会操作数据库。
  • 成立则把Redis缓存的数据一次性批量的写入数据库。

redis keys命令

set key value;设置key和value
get key;得到value
dump key;序列化
exists key; 检查客运是否存在
EXPIRE key seconds; 设置key的过期时间
PERSIST key; 移除key的过期时间
randomkey; 返回一个随机的KEY
type key; 返回key所存储的类型
String字符串
mset key value [key value]  设置多个key 和value
strlen key  返回可以对应的字符串值的长度
setex key seconds value 将value关联到key并设置过期时间
mget key [key] [key] 获取多个key 对应的value
Hash哈希
hmset key filed " " filed " " 
hdel key filed [filed]
hget key filed  得到所有的key
hgetall key获取在哈希表中指定 key 的所有字段和值
hkeys key  返回所有的key
hlen key  返回key的长度
hvals key 获取所有的值
List列表
LPUSH KEY VALUE 将一个值插入一个列表中
LRANGE  KEY 0 10 找出列表中10个value
LLEN KEY 获取列表的长度
LPOP KEY 移出并获取列表的第一个元素
RPOP KEY 移除列表的最后一个元素,返回值为移除的元素
Set集合
SADD key member1 [member2]向集合添加一个或多个成员
SCARD key 获取集合的成员数
SINTER key1 [key2]
SMEMBERS key 返回集合中的所有成员
SPOP key 移除并返回集合中的一个随机元素
SINTERSTORE destination key1 [key2] 返回给定所有集合的交集
SREM key member1 [member2]移除集合中一个或多个成员
SRANDMEMBER key [count]返回集合中一个或多个随机数
Sorted Set 有序集合
ZADD key score1 member1 [score2 member2]  添加多个成员
ZCARD key 获取有序集合的成员数
ZCOUNT key min max计算在有序集合中指定区间分数的成员数
ZREM key member [member ...]移除有序集合中的一个或多个成员
ZREMRANGEBYSCORE key min max移除有序集合中给定的分数区间的成员ZSCORE key member返回有序集中,成员的分数值
HyperLogLog
PFADD key element [element ...]  添加指定元素
PFCOUNT key 返回基数估算值
PFMERGE destkey sourcekey [sourcekey ...]将多个HyperLogLog 合并为一个 HyperLogLog

演示

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值