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/
背景
我们现在的项目架构中,基本上是Web服务器(Tomcat)和数据库独立部署,独占服务器资源,随着用户数的增长,并发读写数据库,会加大数据库访问压力,导致性能的下降,严重时直接导致系统宕机。
Redis 概述
Redis是一个key-value存储系统(官网:http://redis.io),是一个分布式缓存数据库。
Redis初始操作
启动redis服务
Docker 环境下的启动(docker环境启动多个需要运行多个容器):
docker start redis01 #底层也是通过redis-server启动,start单词后的redis01为容器名
docker中查看redis容器是否启动
docker ps
查看启动的redis进程信息
ps -ef|grep redis
登陆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信息
127.0.0.1:6379> info #查看当前redis节点的详细配置信息
清空redis屏幕
清除redis屏幕内容
127.0.0.1:6379> clear
退出redis服务
退出redis服务,例如
127.0.0.1:6379> exit
关闭redis服务
关闭redis服务,例如:
127.0.0.1:6379> shutdown
系统帮助
可以基于help指令查看相关指令帮助,例如
Redis数据存储操作
简易数据存取
基于查看redis中的key
127.0.0.1:6379> keys *
基于key/value形式存储数据
127.0.0.1:6379> set test01 abc
OK
127.0.0.1:6379> set test02 123
OK
127.0.0.1:6379> keys *
1) "test02"
2) "test01"
127.0.0.1:6379>
基于key获取redis中存储的数据,没有数据则为(nil)
127.0.0.1:6379> get test01
"abc"
127.0.0.1:6379> get test02
"123"
127.0.0.1:6379> get test03
(nil)
127.0.0.1:6379>
清除 “当前” 数据库数据
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 lst qwe
OK
127.0.0.1:6379> expire lst 10
(integer) 1
127.0.0.1:6379> ttl lst
(integer) 5
127.0.0.1:6379> ttl lst
(integer) 4
127.0.0.1:6379> ttl lst
(integer) 3
127.0.0.1:6379> ttl lst
(integer) 2
127.0.0.1:6379> ttl lst
(integer) 1
127.0.0.1:6379> ttl lst
(integer) 0
127.0.0.1:6379> ttl lst
(integer) -2
其中,TTL查看key的剩余时间,当返回值为-2时,表示键被删除。
当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。
Persist (取消时长设置)
127.0.0.1:6379> set lst qwe
OK
127.0.0.1:6379> expire lst 60
(integer) 1
127.0.0.1:6379> ttl lst
(integer) 56
127.0.0.1:6379> persist lst
(integer) 1
127.0.0.1:6379> ttl lst
(integer) -1
127.0.0.1:6379>