redis

redis的介绍

redis就是一款高性能的NOSQL.

因为NOSQL数据的修改是在内存中而不是在硬盘上, 所以NOSQL相比于关系型数据库来说, 数据查询更快, 性能更高, 但只适合储存少量数据, 不适合储存大量数据.

所以项目开发一般将NOSQL和关系型数据库结合使用, NOSQL存储经常需要访问的数据, 而其他的数据交给关系型数据库解决.

(后端获取这些数据时, 会先到NOSQL的内存中去获取, 获取不到才到关系型数据库去获取, 并将数据存放到redis, 以便后续的效率)

当然这些数据不能一直放在内存, 如果服务器炸了数据就没了, 所以要将这些数据定期的存到硬盘上, 这种技术即为数据的持久化技术.

redis存储的数据的特点

不是很重要, 轻量, 更新频率低, 经常存放的是热点数据.

redis的应用场景

  • 缓存 (数据查询,短连接,新闻内容,商品内容)
  • 聊天室的在线好友列表
  • 任务队列 (秒杀,抢购,12306等)
  • 排行榜
  • 网站访问统计, 点赞数
  • 数据过期处理 (可以精确到毫秒)
  • 分布式集群架构中的session分离

redis的使用

  • redis.windows.conf文件是配置文件
  • redis-server.exe是开启服务
  • redis-cli.exe是开启用户命令行窗口, 用于redis的增删改查
  • dump.rdb是redis用RDB方式持久化在硬盘上的数据库文件
    在这里插入图片描述

数据结构

键值对, 下面几种是值的数据类型

  • string
  • hashMap
  • list
  • set (无序,元素不能重复)
  • sortedSet

命令操作

  • 通用命令
    • keys * 获取所有的键 (*可以换成正则表达式)
    • type key, 如 type username 结果为 string, 获取key的类型
    • del keu, 如 del myHashMap, 不管什么类型都能删
  • string类型
    • 存储: set key value, 如 set username juln
    • 获取: get key, 如 get username
    • 删除: del key
  • hashMap类型
    • 存储(无hashMap则创建): hset key field value, 如 hset user username juln, hset user password 123
    • 获取单条: hget key field
    • 获取全部: hgetall key
    • 删除单条: hdel key field
  • list类型
    • 从list左边插入元素(无list则创建): lpush key item, 如 lpush users juln
    • 从list右边插入元素: rpush key item
    • 获取元素: lrange key start end, 如 lrange users 0 -1
    • 从左边删除元素, 并返回该元素的值: lpop key, 如 lpop users
    • 从右边删除元素, 并返回该元素的值: rpop key
  • set类型
    • 存储单个元素(无set则创建): sadd key item, 如 sadd users juln
    • 存储多个元素(无set则创建): sadd key item1 item2 item3 …, 如 sadd users juln efef shuaige
    • 获取所有元素: smembers key, 如 smembers users
    • 删除单个元素: srem key item, 如 srem users juln
  • sortedSet类型 (按score的大小来排序)
    • 存储(无sortedSet则创建): zadd key score item, 如 zadd users 100 juln
    • 修改排序: 比如 已经运行过 zadd users 100 juln, 再运行 zadd users 0 juln 就可以修改排序
    • 获取: zrange key start end, 如 zrange users 0 -1
    • 连同score一起获取: zrange key start end withscores, 如 zrange users 0 -1 withscores
    • 删除: zrem key item, 如 zrem users juln

redis的持久化机制

  • RDB持久化方式 (redis的默认方式)

    • 在一定的间隔时间中, 检测key的变化情况, 然后持久化数据
    • RDB持久化后的文件名后缀为 .rdb
    • 下图的意思是: 若900ms内有1条数据被修改, 则持久化一次; 若300ms内有10条数据被修改, 则持久化一次; 若60ms内有10000条数据被修改, 则持久化一次. (修改完配置之后, 不能直接redis-server.exe, 必须在cmd中执行 redis-server.exe redis.windows.conf才能生效)在这里插入图片描述
  • AOF持久化方式

    • 日志记录的方式, 可以记录每条命令的操作. 命令一执行就持久化数据
    • AOF持久化后的文件名后缀为 .aof
    • 将下图的no改成yes, 即可开启AOF模式
      在这里插入图片描述
      下图为AOF模式的三种选择
      always: 即每次操作完数据都持久化
      everysec: 开启AOF后默认为everysec, 每隔一秒进行一次持久化
      no: 即不进行持久化
      在这里插入图片描述
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值