目录

简介

背景

Redis 概述

版本及参考说明

Redis初始操作

启动redis服务

进入redis容器

登陆redis服务

查看redis信息

清空redis屏幕

关闭redis服务

系统帮助

Redis数据存储操作

简易数据存取

Key有效时间设计

总结(Summary)


简介

背景

我们现在的项目架构中,基本上是Web服务器(Tomcat)和数据库独立部署,独占服务器资源,随着用户数的增长,并发读写数据库,会加大数据库访问压力,导致性能的下降,严重时直接导致系统宕机,例如:

此时,我们可以在Tomcat同服务器上中增加本地缓存,并在外部增加分布式缓存,缓存热门数据。也就是通过缓存能把绝大多数请求在读写数据库前拦截掉,大大降低数据库压力。例如:

基于这样的一种架构设计,于是类似redis的一些分布式数据库就诞生了。

Redis 概述

Redis是一个key-value存储系统(官网:http://redis.io),是一个分布式缓存数据库。在DB-Engines.com的数据库排行中, Redis上升排行第七,如图所示:

版本及参考说明

Redis的次版本号(第一个小数点后的数字)为偶数的版本是稳定版本(2.4、2.6等),奇数为非稳定版本(2.5、2.7),一般推荐在生产环境使用稳定版本。最新版本6.2.2,新增了stream的处理方式,性能更高。Redis官方是不支持windows平台的,windows版本是由微软自己建立的分支,基于官方的Redis源码上进行编译、发布、维护的,所以windows平台的Redis版本要略低于官方版本。

Redis 相关参考网址如下所示:

Bootnb 相关:https://www.runoob.com/redis/redis-tutorial.html
Redis 官网:https://redis.io/
源码地址:https://github.com/redis/redis
Redis 在线测试:http://try.redis.io/
Redis 命令参考:http://doc.redisfans.com/

Redis初始操作

启动redis服务

Docker 环境下的启动(docker环境启动多个需要运行多个容器):

docker start redis #底层也是通过redis-server启动,start单词后的redis为容器名

docker 中查看redis 服务

docker ps

查看启动的redis进程信息

ps -ef|grep redis
root      3511     1  0 16:29 ?   00:00:01 redis-server *:6379
root      3515     1  0 16:29 ?   00:00:01 redis-server 127.0.0.1:6380

进入redis容器

docker exec -it redis01 bash #redis01 为容器名

登陆redis服务

登陆本地redis

redis-cli
或者
redis-cli -p 6379
或者
redis-cli -p 6379 -a  password #-a后面为password,此操作需要开启redis.conf文件中的 requirepass选项

登陆远程redis

redis-cli  -h ip  -p 6379  -a  password

查看redis信息

首先登陆redis,然后输入info指令,例如

127.0.0.1:6379> info      #查看当前redis节点的详细配置信息

清空redis屏幕

清除redis屏幕内容

127.0.0.1:6379> clear

关闭redis服务

关闭redis服务,例如:

127.0.0.1:6379> shutdown

系统帮助

可以基于hep指令查看相关指令帮助,例如

127.0.0.1:6379> help
redis-cli 2.8.19
Type: "help @<group>" to get a list of commands in <group>"help <command>" for help on <command>"help <tab>" to get a list of possible help topics"quit" to exit
127.0.0.1:6379> help typeTYPE keysummary: Determine the type stored at keysince: 1.0.0group: generic

Redis数据存储操作

简易数据存取

基于查看redis中的key

127.0.0.1:6379> keys *
(empty list or set)

基于key/value形式存储数据

127.0.0.1:6379> set test1 123
OK
127.0.0.1:6379> set test2 ab
OK
127.0.0.1:6379> keys *
1) "test1"
2) "test2"

基于key获取redis中存储的数据

127.0.0.1:6379> get test1
"123"
127.0.0.1:6379> get test2
"ab"
127.0.0.1:6379> get test3
(nil)
127.0.0.1:6379>

清除redis中的数据

清除当前数据库数据

127.0.0.1:6379> flushdb
OK

清除所有数据库数据

127.0.0.1:6379> flushall
OK

Key有效时间设计

实际工作中我们经常要控制redis中key的有效时长,例如秒杀操作的计时,缓存数据的有效时长等。

Expire (设置生效时长-单位秒)

语法:EXPIRE key seconds


127.0.0.1:6379> set bomb tnt
OK
127.0.0.1:6379> expire bomb 10
(integer) 1
127.0.0.1:6379> ttl bomb
(integer) 5
127.0.0.1:6379> ttl bomb
(integer) 3
127.0.0.1:6379> ttl bomb
(integer) 3
127.0.0.1:6379> ttl bomb
(integer) 2
127.0.0.1:6379> ttl bomb
(integer) 1
127.0.0.1:6379> ttl bomb
(integer) -2
127.0.0.1:6379> ttl bomb
(integer) -2
127.0.0.1:6379>

其中,TTL查看key的剩余时间,当返回值为-2时,表示键被删除。
当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。

Persist (取消时长设置)

通过persist让对特定key设置的生效时长失效。

语法:PERSIST key

127.0.0.1:6379> set bomb tnt
OK
127.0.0.1:6379> expire bomb 60
(integer) 1
127.0.0.1:6379> ttl bomb
(integer) 49
127.0.0.1:6379> persist bomb
(integer) 1
127.0.0.1:6379> ttl bomb
(integer) -1
127.0.0.1:6379>

其中,设置新的数据时需要重新设置该key的生存时间,重新设置值也会清除生存时间。

pexpire (单位毫秒)

pexpire 让key的生效时长以毫秒作为计量单位,这样可以做到更精确的时间控制。例如,可应用于秒杀场景。

语法:PEXPIRE key milliseconds

127.0.0.1:6379> set bomb tnt
OK
127.0.0.1:6379> pexpire bomb 10000
(integer) 1
127.0.0.1:6379> ttl bomb
(integer) 6
127.0.0.1:6379> ttl bomb
(integer) 3
127.0.0.1:6379> ttl bomb
(integer) -2
127.0.0.1:6379>

总结(Summary)

本章节主要是讲解了一下redis的一些入门操作,主要是一些需要记住的一些指令

01-Redis缓存入门相关推荐

  1. springboot mybatis ehcache_SpringBoot入门建站全系列(十四)集成Redis缓存

    SpringBoot入门建站全系列(十四)集成Redis缓存 一.概述 本地缓存,就是使用应用内使用本地内存将数据暂缓存储,一般数据库的查询如果不怎么改动,可以用本地缓存暂存. 远程缓存,比如redi ...

  2. .NET分布式缓存Redis从入门到实战

    一.课程介绍 今天阿笨给大家带来一堂NOSQL的课程,本期的主角是Redis.希望大家学完本次分享课程后对redis有一个基本的了解和认识,并且熟悉和掌握 Redis在.NET中的使用. 本次分享课程 ...

  3. ABP从入门到精通(3):aspnet-zero-core 使用Redis缓存

    一.Redis是什么? redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset ...

  4. 新课发布-SpringBoot2.0缓存中间件Redis技术入门与实战(抢红包系统设计与实战)

    概要介绍:历经半个多月的时间,Debug呕心沥血.亲自录制的 "缓存中间件Redis技术入门与应用场景实战(SpringBoot2.x + 抢红包系统设计与实战)"的新课终于完成了 ...

  5. SpringSecurity OAuth2实现单点登录,微信扫码登录,Redis缓存验证码---入门到实战

    1. 认证授权 1.1 什么是认证授权 ​ 例如课程发布后用户通过在线学习页面点播视频进行学习.如何去记录学生的学习过程呢?要想掌握学生的学习情况就需要知道用户的身份信息,记录哪个用户在什么时间学习什 ...

  6. ABP入门系列(13)——Redis缓存用起来

    1. 引言 创建任务时我们需要指定分配给谁,Demo中我们使用一个下拉列表用来显示当前系统的所有用户,以供用户选择.我们每创建一个任务时都要去数据库取一次用户列表,然后绑定到用户下拉列表显示.如果就单 ...

  7. asp.net性能优化之使用Redis缓存(入门)

    1:使用Redis缓存的优化思路 redis的使用场景很多,仅说下本人所用的一个场景: 1.1对于大量的数据读取,为了缓解数据库的压力将一些不经常变化的而又读取频繁的数据存入redis缓存 大致思路如 ...

  8. 【项目优化01】使用Git管理项目及使用redis缓存短信验证码,菜品以及套餐数据

    文章目录 1. 使用Git管理项目 2. redis缓存 2.1 使用redis缓存短信验证码 2.2 使用redis缓存菜品数据 2.3 使用Spring Cache缓存套餐数据 1. 使用Git管 ...

  9. Redis 数据库入门教程

    From:http://www.jb51.net/article/56448.htm Redis 菜鸟教程:http://www.runoob.com/redis/redis-tutorial.htm ...

  10. Redis缓存详解(黑马-未完结)

    文章目录 1.场景引入 2.NoSQL数据库 2.1NoSQL简介 2.2NoSQL的适用场景 2.3NoSQL不适用的场景 2.4NoSQL数据库的意义 3.SQL与NoSQL的区别 4.Redis ...

最新文章

  1. View事件分发机制(源码 API27)
  2. spring 中读取properties 文件
  3. oracle不能单步调试,oracle bug之vipca无法执行问题的解决
  4. VUE的element-ui的使用
  5. 如何使用TensorFlow玩转深度学习?
  6. 在雅加达EE TCK中使用Arquillian的可能方法
  7. 重装vcenter后恢复原来制作的模板!
  8. 使用动态代理解决网站字符集编码问题:(之前通过拦截器)
  9. HNU 19.迭代电路习题
  10. java struts 拦截器_java框架篇---struts实现拦截器
  11. adb命令安装apk
  12. 怎么利用微博进行营销?
  13. Linux下MinDoc安装使用
  14. html超链接调用js函数,在html中引入外部js文件,并调用带参函数的方法
  15. 微信无法打开xlsx文件_微信打不开文件怎么办显示excel丢失或损坏
  16. ROS环境下使用WHEELTEC N100惯导模块
  17. 微软“匈牙利”法程序标示符命名规则
  18. java 流媒体点播_7个最佳的直播和点播健身流媒体平台
  19. 生物信息学算法之Python实现|Rosalind刷题笔记:003 中心法则:翻译
  20. sql镜像备份 转 浪客 博客

热门文章

  1. 《医学成像原理》——4.超声成像的知识总结
  2. 台湾大学林轩田《机器学习基石》学习笔记第4讲——Feasibility of Learning
  3. 帆软插入行可以新增值
  4. 基于JAVA智能道路交通管理系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署
  5. python当前时间加一分钟,python 当前时间多加七天、一小时、一分钟
  6. [linux专题]基于linux进程编程
  7. 用计算机弹鲁冰花,鲁冰花-完美钢琴演奏版
  8. matlab函数regexp的用法,VBScript-RegExp对象的详细用法
  9. 为什么有人可以在“屎”一样混乱的几千行代码里加功能?不重构能驾驭“屎山”吗?...
  10. 山东大学软件学院人工智能导论学习笔记