redis学习笔记

一、redis下载

win+ubuntu教程地址:Redis下载安装教程(手把手教你5步成功) – mikechen

下载地址:Downloads - Redis官网

下载命令:

wget https://download.redis.io/releases/redis-5.0.12.tar.gz

download.redis.io 是 Redis 的下载服务器

解压命令:

 tar -zxvf redis-5.0.12.tar.gz 

然后就是make make install 等等。不太熟悉解压安装基本流程、基本步骤、原理等可以看看我另一个博客的文章。链接:

解压文件介绍:

redis-benchmark:性能测试工具

redis-check-aof:修复aof持久化文件

redis-check-rdb:修复rdb持久化文件

redis-cli:redis命令行工具

redis-sentinel:redis集群哨兵使用

redis-server:启动redis 可以通过ps -ef |grep redis来查看redis的启动情况

二、基础配置及操作

基础配置:

Redis(Jedis和SpringBoot整合Redis)_springboot redis jedis-CSDN博客

修改redis.config文件 配置后台启动

daemonize yes 配置后台启动 通过 redis-server redis.conf 配置config文件实现后台启动

退出redis

zyhhsss@zyhhsss:~/redis-5.0.12$ ps -ef |grep redis
zyhhsss    16159    2698  0 09:25 ?        00:00:04 ./redis-server *:6379
zyhhsss    17452   16963  0 10:08 pts/1    00:00:00 grep --color=auto redis

zyhhsss@zyhhsss:~/redis-5.0.12$ kill -9 16159
zyhhsss@zyhhsss:~/redis-5.0.12$ ps -ef |grep redis
zyhhsss    17495   16963  0 10:10 pts/1    00:00:00 grep --color=auto redis

基础操作

1.默认16个数据库,类似数组下标从0开始,初始默认使用0号库。使用select命令进行切换。语法select < dbid>

select 1

设置、获取 set k1 v1 ,get k1

2.统一密码管理,所有库使用同样的密码

3.dbsize查看当前数据库的key的数量

4.flushdb清空当前库

5.flushall清空全部库

6.keys *查看当前库所有key

7.exists < key>判断某个key是否存在

8.type < key>相看key的类型

9.object encoding < key>查看底层数据类型

10.del < key>删除指定的key数据

11.unlink < key>根据选择非阻塞删除。仅将key从keyspace元数据中删除,真正的删除会在后续中做异步操作

12.expire < key>< seconds>:为给定的key设置过期时间,以秒为单位

13.ttl < key>:查看给定key的过期时间:-1表示永不过期-2表示已过期

三、redis数据类型

常见5种:String list hash set zset

数据类型介绍:

jedis实现:Redis(Jedis和SpringBoot整合Redis)_springboot redis jedis-CSDN博客

四、redis AOF

五、redis RDB

六、主从复制

七、redis 哨兵模式

八、redis 分片集群

九、redis亿级访问量数据处理

十、Geospatial实现地理位置服务

十一、redis事务操作

十二、redis缓存

12.1 缓存类型 简介:

redis是旁路缓存

12.2

十三、使用jedis

十四、SpringDataRedis

引入依赖:

redis依赖:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-redis</artifactId>
   <version>3.3.2</version>
</dependency>

连接池依赖:

<dependency>
   <groupId>org.apache.commons</groupId>
   <artifactId>commons-pool2</artifactId>
   <version>2.12.0</version>
</dependency>

yml:

spring:
  application:
    name: spring-boot-mq-redis
  # redis链接,要改成自己的链接配置
  data:
    redis:
      host: 127.0.0.1
      password: ${REDIS_PASSWORD:abc123}
      database: 1
      lettuce:
        pool:
          max-active: 8 #最大连接
          max-idle:   8 #最大空闲连接
          min-idle: 0 #最小空闲连接
          max-wait: 100ms #连接等待时间

 RedisTemplate需要自己设置序列化器

@Configuration
public class RedisConfig {

    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        // 设置 RedisConnectionFactory
        template.setConnectionFactory(factory);
        // 设置 key 序列化为 String
        template.setKeySerializer(RedisSerializer.string());
        // 设置 hash key 序列化为 String
        template.setHashKeySerializer(RedisSerializer.string());
        // 设置 value 序列化为 JSON
        GenericJackson2JsonRedisSerializer jackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
        template.setValueSerializer(jackson2JsonRedisSerializer);
        // 设置 hash value 序列化为 JSON
        template.setHashValueSerializer(jackson2JsonRedisSerializer);
        return template;
    }

}

StringRedisTemplate默认是string

 @Autowired
    StringRedisTemplate stringRedisTemplate;

    private static final ObjectMapper mapper = new ObjectMapper();

    @Test
    void StringTemplateTest() throws JsonProcessingException {
        Message message = new Message("胡歌", 18);
        String s = mapper.writeValueAsString(message);
        stringRedisTemplate.opsForValue().set("msg:200",s);
        String result= stringRedisTemplate.opsForValue().get("msg:200");
        Message message1 = mapper.readValue(result, Message.class);
        System.out.println("message1 = " + message1);
    }

ObjectMapper

com.fasterxml.jackson.databind.ObjectMapper 是 Jackson 库中的一个核心类,用于处理 JSON 数据的序列化(将 Java 对象转换为 JSON)和反序列化(将 JSON 转换为 Java 对象)。Jackson 是一个流行的 Java 库,用于处理 JSON 数据,它提供了强大的数据绑定和数据转换功能。

ObjectMapper 的主要功能和用法

序列化(将 Java 对象转换为 JSON)

ObjectMapper 可以将 Java 对象转换为 JSON 字符串,这通常用于将数据传输到 Web 服务或保存到文件中。

示例代码

ObjectMapper objectMapper = new ObjectMapper();
MyClass myObject = new MyClass();
String jsonString = objectMapper.writeValueAsString(myObject);
System.out.println(jsonString);

反序列化(将 JSON 转换为 Java 对象)

  • ObjectMapper 可以将 JSON 字符串转换为 Java 对象,这对于从 JSON 响应中提取数据非常有用。
  • 示例代码:
    ObjectMapper objectMapper = new ObjectMapper();
    String jsonString = "{\"name\":\"John\",\"age\":30}";
    MyClass myObject = objectMapper.readValue(jsonString, MyClass.class);
    System.out.println(myObject.getName());
    

    配置(定制序列化和反序列化行为)

  • ObjectMapper 可以通过各种配置选项来定制序列化和反序列化的行为,例如日期格式、属性命名策略等。
  • 示例代码:
    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd"));
    objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
    

    树模型(处理 JSON 作为树结构)

  • ObjectMapper 可以将 JSON 数据读入到树状结构中,这对于复杂的 JSON 数据结构处理很有用。
  • 示例代码:
ObjectMapper objectMapper = new ObjectMapper();
JsonNode rootNode = objectMapper.readTree(jsonString);
String name = rootNode.path("name").asText();
  1. 与其他库的集成

    • ObjectMapper 可以与其他库集成,例如在 Spring Boot 中,ObjectMapper 经常用于处理 JSON 数据,并且可以通过 Spring Boot 的自动配置来定制其行为。

常用方法

  • writeValueAsString(Object value): 将 Java 对象转换为 JSON 字符串。
  • readValue(String content, Class<T> valueType): 将 JSON 字符串转换为 Java 对象。
  • readTree(String content): 将 JSON 字符串转换为 JsonNode 树模型。
  • setDateFormat(DateFormat dateFormat): 设置日期格式。
  • configure(Feature feature, boolean state): 配置序列化和反序列化的特性。

ObjectMapper 是处理 JSON 数据的一个强大工具,能够帮助开发者高效地进行数据转换和处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值