一.redis是什么
redis是一个开源的,将数据存储到内存中的key-value结构的存储数据的一款非关系型数据库。
redis可以用来看成数据库(存储一些简单的数据,例如消息点赞数量),缓存(秒杀时商品数量信息),消息中间件。
Redis 产品有以下特点:
- 可以将数据存储到内存中,也可以将数据长期化到硬盘上
- 性能极高
- 提供了丰富的数据结构存储数据
- Redis将数据存储在内存中,也支持数据的长期化,可以将内存中的数据保持 在磁盘中,重启的时候可以再次加载进行利用。
- 性能极高, Redis能读的速度是110000次/s,写的速度是81000次/s 。
- Redis供list,set,zset,hash 等数据结构的存储。
- 原子– Redis的所有操作都是原子性的,同时Redis还支持对几个操作全 并后的原子性执行。
- Redis分布式集群化扩展性极,高即master-slave(主-从)模式。
二.为什么利用redis
web1.0 2000年左右 网站数据都是静态(写死的)
web2.0 动态页面 数据动态展示,例如:新浪、腾讯(平台写信息,用户读信息)
web3.0 全民参加 例如:抖音、头条 (用户量很大)
大量用户连接数据库,数据库就会出现瓶颈(连接数量太多,IO时间),为了缓解关系数据库压力,可以将数据库暂时存储到redis中,甚至有些数据直接存储到redis中,从而实现对关系型数据库的保护。
注意:redis不是替代关系型数据库的。
三.Linux 下利用Docker安装redis
1.创建redis配置文件和数据映射(数据卷)
mkdir-p /opt/redis/conf
mkdir-p /opt/redis/data
2.安装下令
- docker run -d -p 6379:6379 \
- --name redis \
- --restart=always \
- --privileged=true \
- -v /opt/redis/conf/:/etc/redis/conf \
- -v /opt/redis/data:/data \
- redis:6.0
复制代码 四.redis 数据结构
5 种根本常用结构:
string(字符串),hash(哈希),list(列表),set(聚集 ),zset(sorted set:有序聚集)
redis中键都是字符串范例,五种数据结构指定的是值的结构。
1.string(字符串)
1)单值缓存
存一个详细的值,也可以存储一个Java中的对象,对象是被序列化成json格式的字符串。
set key value
get key
del key 删除键
keys * 检察所有的键
2)计数器
消息点赞 (news_views是键)
set news_views:1 0 设置文章访问量
incr news_views:1 文章访问量+1 (键的值必须是整数)
decr news_views:1文章访问量-1
get news_views:1获得值
2.hash(哈希)
消息点赞,消息收藏
hset key field value 存储一个哈希表key的键值
hget key field 获取key对应的属性键值
hdel key field 删除key中的field键值
hlen key 返回key中的field的数量
hgetall key 返回key中所有的属性值
3.list(列表)
有序(添加顺序)的聚集,可以存储重复元素
lpush key value 从左边(表头)向聚集添加元素
rpush key val 从右边边向聚集添加元素
lpop key 重新删除元素
rpop key 从未删除元素
lrange key 开始的位置,结束的位置
4.set(聚集 )
无序不重复的聚集。
sadd key val 添加
srem key val 删除指定key中的值
smembers key 检察指令key下的所有的值
scard key 检察key中的元素数量
5.zset(sorted set:有序聚集)
有序(排序),元素不重复的聚集。
zadd key 分数 值 -- 添加
zrem key 值 -- 删除
zscore key 值 -- 返回值的分数
zcard key -- 检察key中的元素数量
五.设置失效时间
set key val ex/px 时间 --ex秒/px毫秒
ttl 键 检察剩余时间(秒)
pttl 键 检察剩余时间(毫秒)
六.springBoot 集成利用redis
1.Java程序连接redis
1)利用官方提供的Jedis类实现连接
2)利用springboot对Jedis的封装实现
(1)管理连接redis对象,提供数据库连接池功能
(2)针对每种数据结构分别封装不同的实现类
(3)事务(跳过)
(4)提供了对键,值进行序列化、反序列化操作
2.详细搭建
1)添加redis依赖
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-redis</artifactId>
- </dependency>
复制代码 2)配置连接redis
3)注入RedisTemplate
- @Autowired
- RedisTemplateredisTemplate;
复制代码 4)测试
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |