2021-10-05 Redis分布式缓存

文章目录

  • Redis 概述
  • Redis初始操作

Redis 概述

Redis是一个key-value存储系统(官网:http://redis.io),是一个分布式缓存数据库。在Tomcat同服务器上中增加本地缓存,并在外部增加分布式缓存,缓存热门数据。也就是通过缓存能把绝大多数请求在读写数据库前拦截掉,大大降低数据库压力。
2021-10-05 Redis分布式缓存_第1张图片

Redis初始操作

安装Redis数据库

1. 下载镜像文件: docker pull redis
2. 准备redis.conf配置文件: touch /usr/local/docker/redis01/conf/redis.conf
3. 创建redis实例并启动: 
	docker run -p 6379:6379 --name redis01 \
	-v /usr/local/docker/redis01/data:/data \
	-v /usr/local/docker/redis01/conf/redis.conf:/etc/redis/redis.conf \
	-d redis redis-server /etc/redis/redis.conf 
4. 访问redis服务器: docker exec -it redis01 bash
   检测redis 版本: redis-server  -v
5. 登录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: docker exec -it redis01 redis-cli
6. 查看redis信息: info
   关闭redis服务: shutdown

Redis数据存储操作

基于查看redis中的key: keys *
基于key/value形式存储数据: set test1 123
基于key获取redis中存储的数据: get test1
清除当前数据库数据: flushdb
清除所有数据库数据: flushall

Key有效时间设计

实际工作中我们经常要控制redis中key的有效时长,例如秒杀操作的计时,缓存数据的有效时长等。
expire key seconds
pexpire 让key的生效时长以毫秒作为计量单位,这样可以做到更精确的时间控制。例如,可应用于秒杀场景。
pexpire key milliseconds


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> 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

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

通过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

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

你可能感兴趣的:(redis,缓存,数据库)