0
点赞
收藏
分享

微信扫一扫

银河麒麟服务器操作系统V10SP3

孟佳 2024-03-08 阅读 8

Redis

1.什么是Redis

Redis是一个用C语言编写, 开源高性能非关系型(NoSQL)的键值对数据库
Redis五种基本数据类型

2 Redis为什么这么快

  • 数据存在内存中: 内存的读写操作是磁盘(数据库)的一百倍左右
  • 使用C语言实现: C语言更底层, 执行速度更快
  • 单线程执行
    • 没有多线程竞争锁的性能消耗。
    • 没有多线程导致的切换而消耗CPU

3.Redis有哪些数据类型

3.1 string

3.1.1 可以存储的值

  • 字符串
  • 整数
  • 浮点型

当我们将整数、浮点数存储为String类型时, Redis会将其转换为字符串形式(浮点数不会发生精度丢失)

3.1.2 操作

  • 对字符串或者字符串的一部分进行操作
  • 对整数、浮点数执行自增或者自减操作

3.1.3 命令

  • 基本操作
    • set (key) (value):设置键值对
    • setnx (key) (value):设置键值对(防止覆盖)
      • 如果key存在, 不设置, 返回0
      • 如果key不存在, 设置, 返回1
    • get(key): 获取key对应的value
    • getset (key) (value): 先get再set, 返回旧值, 如果没有旧值则返回nil
    • append (key) (value): 向指定的key的value后追加字符串
    • del (key): 删除key
    • strlen (key): 获得key对应值的字符串的长度
  • 数字value的加减
    • incr (key) :value + 1
    • decr (key):value - 1
    • incrby (key) (number):value + number
    • decrby (key) (number):value - number
  • 获取或者设置指定范围内的值
    • getrange (key) (begin) (end) :获取[begin,end]下标范围内的值,如果是(0,1)就是获取所有值
    • setrange (key) (begin) (xxxx) :从begin下标开始设置xxx值,将原有的替换掉
  • 设置键值过期时间
    • setex (key) (seconds) expire:设置键过期时间
    • ttl (key) :查看key剩余存活时间
  • 同时设置或获取多个key-value
    • mset (key1) (value1) (key2) (value2) :用于同时设置一个或多个 key-value 对
    • mget (key1) (key2) :返回所有(一个或多个)给定 key 的值(如果某个key不存在,不存在的key返回null)
    • msetnx(key1) (value1) (key2) (value2) :当所有 key 都成功设置,返回 1 。 如果有一个key设置失败,所有的key设置都会失败,返回 0 。原子操作

3.1.4 使用场景

1.缓存
最常见的使用场景, 主要得益于其高性能(内存操作)、灵活的数据结构(支持5种结构)等等

  • 频繁读取的数据库查询: 当某个数据库查询被频繁执行, 可以将查询结果缓存到Redis中, 较少对数据库的访问
  • 会话缓存: 将用户会话存储到Redis中, 特别是大规模的web应用, 这可以提高会话管理的性能和可扩展性
  • 用户身份证验证信息缓存: 缓存用户的身份证令牌或者其他身份验证信息, 减少身份验证请求对数据库的负担
  • 页面内存缓存: 对于动态生成的页面内容, 可以将完整的HTML缓存到Redis中, 降低渲染时间, 提高网站性能

哪些内容适合进行缓存

  • 频繁访问: 通常是应用中频繁访问的数据
  • 相对稳定: 在一段时间内不经常变化
  • 持续时间长: 通常具备较长的生命周期

2.计数器
Redis是基于内存的键值对存储系统, 读写速度非常快, 性能很高, 能以非常低的延迟处理大量的计数请求, 同时Redis是单线程的, 一个命令执行完才会执行下一个, 不会出现线程安全问题

  • 网站访问计数: 统计网站、特定页面的点击次数, 每当用户访问网站或点击某个页面时, 通过Redis的INCR递增
  • 用户行为计数: 跟踪用户在应用中的各种行为, 例如发布文章、点赞、评论等. 对每种行为创建一个计数器, 可以方便记录用户活动
  • 实时统计: 在实时应用中,需要快速地获取某个指标的实时统计数据,例如活跃用户数、实时销售额等。使用Redis的计数器可以很容易地实现这些实时统计。

3.session共享
session + redis实现session共享

4.Redis实现Session共享

举报

相关推荐

0 条评论