redis 验证订单_一分钟了解redis

redis介绍

redis是一个nosql数据库,是完全开源免费的,是一个高性能的key-value数据库。

c5c786cab4f6b6b92f020bd639b24eb3.png

非关系型数据库和关系型数据库

  • 关系型数据库有mysql,oralce等,数据是存放在硬盘中的,每次对数据进行操作都是io操作,而io操作的性能相对来说是比较差的;
  • 非关系型数据库有redis等,数据是存放在内存中的,如果redis一旦挂掉,数据可能会丢失,因此一般我们都会选择持久化机制; redis内存大小是有一个阈值限制的, 一旦超出阈值大小,会有一个淘汰策略;
  • jvm内置缓存框架;

redis应用场景

  1. Token令牌生成;
  2. 短信验证码code;
  3. 查询数据缓存 (减轻数据库压力);
  4. 实现计数器;(redis本身是一个单线程,可以保证原子性)
  5. 分布式锁;
  6. 延迟操作;(如果在一定时间范围内没有进行支付,关闭订单 实现方式对key进行监听)
  7. 分布式消息中间件;(分布/订阅 市面上基本上没有用到)

redis 环境安装

  1. https://redis.io/ redis官网地址
b7b22d425f1c3a555e176f1420ffe3d3.png

官网下载redis

  1. 上传redis包到linux服务器,并解压tar -zxvf redis-5.0.6.tar.gz
  2. cd redis-5.0.6
  3. 编译 make -j8
  4. make PREFIX=~/redis install

redis配置文件说明:

  1. 将redis设置为后台启动:daemonize yes
  2. 设置redis账号密码:requirepass 123456
048e30931e22740c297be0eaaf72c714.png

./redis-cli -h ip -p port -a password

  1. 设置redis允许ip访问:bind 0.0.0.0
  2. redis默认情况下分为16个库:databases 16

redis线程模型

redis采用nio的io多路复用原则,也就是一个线程去维护多个redis客户端连接,从而提高并发效率和保证线程安全问题;底层是采用linux的epoll技术避免空轮训;

redis数据结构

string类型 hash类型 list类型 set类型 sort-set类型

string类型

673be6280c4d6cdf97c62c8e18be4774.png

string类型

0ad86067fdaaab2b617944e7356d74cb.png

redis客户端

hash类型

03aa252d4b0ec0157d8b2f6b186245bc.png

hash类型

dfd0641299c027c0e60f81d346405f53.png

redis客户端

list类型

511058e127b32ba17ba1db2c45e752f3.png

list类型

b7e2af2ea2ca90bfa6ceb5c959924ba4.png

redis客户端

set类型

a8483177eaa9b13ec7c82fd341ce465a.png

set类型

eddd3da71df0f48cae72bd1b1b2a6521.png

redis客户端

redis中如何存放一个java对象

  1. 存放json对象: set key=user value={"id":"0001", "name":"zhangsan"}
    缺点:提取出的json对象需要转,比较麻烦;
  2. 存放二进制:eg:ssl-sso框架底层是使用二进制进行存储;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值