栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Redis的基本命令

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Redis的基本命令

Redis的基本使用
    • 1.redis的基本数据结构string
    • 2.redis的基本数据结构list
    • 3.redis的基本数据结构hash
    • 4.redis的基本数据结构set
    • 5.redis的基本数据结构zset
    • Redis缓存更新策略:
    • 缓存存在的问题:

1.redis的基本数据结构string

//查询数据
keys *(支持模糊查询)
//写入
set key value
//读取
get key
//检查是否存在key
exists key
//删除
del key
//批量写入
mset key1 value1 key2 value2…
//批量读取
mget key1 key2 …
//如果key存在就不写入
setnx key value
//存入带有过期时间的数据
setex key time(int)(秒) value
//自增
incrby key int

2.redis的基本数据结构list

//写入
lpush key value(链表的左侧写入)
rpush key value(链表的右侧写入)
//弹出
lpop key(左侧弹出)
rpop key(右侧弹出)
//获取list的长度
llen key
//获取指定范围的数据
lrange key start_index end_index
//读取指定下标的数据
lindex key index

3.redis的基本数据结构hash

//写入
hset key <>
//获取value
hget key <>
//获取所有
hgetall key

4.redis的基本数据结构set

set内部无序,不允许重复的key
//写入
sadd key value…
//读取一个
spop key
//读取全部
smembers key
//查询value是否存在
smembers key value
//获取长度
scard key

5.redis的基本数据结构zset

zset不允许重复key,按照写入的score排序
//写入
zadd key [score] value…
//删除value
zrem key value
//按照score排序列出
zrange key 0 -1
//按照score倒序列出
zrevrange key 0 -1
//长度
zcard key

java中操作Redis:
1.使用jedis
2.使用springDataRedis

Redis缓存更新策略:

1.查询数据库时:
先查询缓存,缓存中没有再查询数据库,然后把数据写入缓存,然后返回数据
2.修改数据库时:
先修改数据库,然后再删除缓存,确保两者的原子性

缓存存在的问题:
  1. 缓存穿透
    - 原因:当多次访问缓存和数据库中都没有的数据时,会多次查询数据库,给数据库造成压力
    - 解决方法:缓存空对象,做好数据格式的校验,加强用户权限的校验

  2. 缓存雪崩
    - 原因:当很多热点数据的缓存同时过期,或者Redis宕机
    - 解决方法:设置随机的过期时间,给Redis做集群,给业务添加多级缓存,给缓存业务添加降级限流

  3. 缓存击穿
    - 原因:热点数据突然过期,因为重建耗时较长,在这段时间内大量的请求落到数据库,带来巨大冲击
    - 解决办法:
    - 1.给缓存重建过程加互斥锁(可能会导致死锁)
    - 2.逻辑过期时间(开启一个新的线程去重建,其他线程不用等待,直接返回旧数据)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/978587.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号