Redis

Redis概述

        redis是一个开源的,将数据存储到内存中,key-value结构的存储数据的一款非关系型数据库。

redis作用:

redis可以用来当作

1、数据库(存储一些简单的数据列如新闻点赞数量),

2、缓存(秒杀的商品数量信息),

3、中间件(如:俩个Java项目连接一个redis)

redis特点:

1、可以将数据存储在内存中,也可以将数据持久化到硬盘上

2、性能高,redis能读的速度是110000次/秒,写的速度是80000次/秒

3、提供了丰富的数据结构存储数据

为什么使用redis?

web1.02000年左右,网站数据都是静态(写死的)
web2.0动态页面,数据动态显示,列如新浪、腾讯,平台发信息,用户看
web3.0全民参与,如抖音

大量用户连接数据库,数据库就会出现瓶颈(连接数量太多,io时间长)为了减轻数据库的压力,有些数据就直接存储到redis中,从而实现对关系型数据库的保护。

注意:redis不是来代替数据库的

redis安装

        创建配置文件和数据的映射(数据卷)

mkdir -p /opt/redis/conf
mkdir -p /opt/redis/data
复制 redis.conf 文件到/opt/redis/conf 目录下
安装命令
docker run -d -p 6379:6379 --name redis --restart=always  --privileged=true -v /opt/redis/conf/redis.conf:/etc/redis/redis.conf -v /opt/redis/data:/data redis:6.0a

在虚拟机中进入redis

docker exec -it redis bash

redis数据结构

5中常用的数据结构:string(字符串)、hash(哈希)、list()、set、zset

键都是字符串结构没有数据结构,只有值有数据结构,5种数据结构指的是值

string:

单值存储(存一个具体值,也可以存储一个java中的对象,对象序列化成json格式的字符串)set  key  value、

get  key、

del  key删除键、

keys  *查看所有的键

计数器:

        新闻点赞:incr  键  (键的值必须是整数)自增1

                          decr  键   自减1

Hash

redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合
用于存储对象.
存的是字符串和字符串值之间的映射,比如要存储用户购物车等信息

新闻点赞、新闻收藏,

hset  key  属性  值、如:hset  user  name:1  zhangsan

hget  key  属性、hget  user  name:1

hdel  key  属性删除某个属性

hlen  key  返回键对应属性数量、

hgetall  key  返回哈希表key中所有的键值对

list

        有序的集合,里面可以重复存储

lpush key  val 左边开始插入、

rpush  key  val  右边开始插入、

lpop key 从头删除、

rpop  key 从右边开始删除、

lrange key  开始位置  结束位置(返回列表key中指定区间内的元素,区间以偏移量开始位置和结束位置

Set

        是无序集合,不能重复存储

sadd  key  val 添加、srem key val 删除key下的值、smembers  key 查看指定key下所有的值、scard  key  获取key下的元素个数

zset

        有序(排序),不重复

zadd key 分数  值、

zrem  key  值、

zscore  key 值  返回值的分数、

zcard key  返回key中元素个数 

设置失效时间

set key  value  ex/px  时间

只有string数据类型可以设置失效时间

 Java程序连接redis

1、使用官方提供的Jedis类实现连接

2、使用springboot对jedis的封装实现      

1. 连接池自动管理,提供了一个高度封装的“RedisTemplate”类.
2. 针对 jedis 客户端中大量 api 进行了归类封装,将同一类型操作封装为
operation 接口.
ValueOperations:简单 K-V 操作
SetOperations:set 类型数据操作
ZSetOperations:zset 类型数据操作
HashOperations:针对 map 类型的数据操作
ListOperations:针对 list 类型的数据操作 3.将事务操作封装,有容器控制。
4.针对数据的“序列化/反序列化”,提供了多种可选择策略(RedisSerializer)
JdkSerializationRedisSerializer:POJO 对象的存取场景,使用 JDK 本身
序列化机制.
StringRedisSerializer:Key 或者 value 为字符串的场景,根据指定的
charset 对数据的字节序列编码成 string,是“new String(bytes, charset)”和
“string.getBytes(charset)”的直接封装。是最轻量级和高效的策略。
JacksonJsonRedisSerializer:jackson-json 工具提供了 javabean 与 json 之
间的转换能力,可以将 pojo 实例序列化成 json 格式存储在 redis 中,也可以将
json 格式的数据转换成 pojo 实例。
1、添加redis依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

2、配置连接redis

redis:
    host: 192.168.198.128 //
    port: 6379
    password: 123
    database: 0
    pool:
      max-active: 8 # 连接池最大连接数(使用负值表示没有限制)
      max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制)
      max-idle: 8 # 连接池中的最大空闲连接
      min-idle: 0 # 连接池中的最小空闲连接
      timeout: 5000ms # 连接超时时间(毫秒)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

双非码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值