redis的学习

!

快速入门

安装

1.使用docker安装redis

sh 复制代码
docker pull redis

docker run -d --name redis -p 6379:6379 --restart unless-stopped -v /etc/docker/Redis/data:/data -v /etc/docker/Redis/conf/redis.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes


#/your/local/path--这个是做持久化处理,把数据存储在主机下的该路径

进入redis容器

sh 复制代码
### 通过 Docker 命令进入 Redis 容器内部
docker exec -it redis /bin/bash
docker exec -it redis bash
### 进入 Redis 控制台
redis-cli
### 添加一个变量为 key 为 name , value 为 bella 的内容
> set name bella
### 查看 key 为 name 的 value 值
> get name
 
 
### 或者也可以直接通过Docker Redis 命令进入Redis控制台 (上面两个命令的结合)
docker exec -it redis redis-cli

#密码
AUTH password
#退出
exit

当连接上之后可以通过ping,redis会回复pong

2.在win上安装redis

通过解压D:\Redis\redis4.0.0\Redis-x64-3.2.100.zip

然后在cmd中输入>redis-server.exe redis.windows.conf (可以使用tab补全文件名)就成功启动了

设置密码---->找到配置文件中的 requirepass titi titi为密码

常见的数据类型

  • 字符串 string
  • 哈希 hash
  • 列表 list
  • 集合 set
  • 有序集合 sorted set / zset

数据类型的特定

常见的命令

字符串操作命令

哈希操作命令

列表操作命令

集合操作命令

有序集合操作命令

通用命令

在java中操作redis

  1. 导入Spring data redis 的maven坐标
  2. 配置redis数据源
  3. 编写配置类,创建redisTemplate对象(不写也能用)
  4. 通过Redis Template对象操作Redis

配置类

java 复制代码
@Configuration
@Slf4j
public class RedisConfiguration {
    @Bean
    public RedisTemplate redisTemplate(RedisConnectionFactory factory){
        log.info("开始创建创建Redis模板");
        RedisTemplate redisTemplate=new RedisTemplate();
        //设置redis的连接工厂对象
        redisTemplate.setConnectionFactory(factory);
        //设置序列化器
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        return redisTemplate;
    }
}

快速使用

java 复制代码
 @Autowired
    @Qualifier("redisTemplate")
    private RedisTemplate template;

    @Test
    public void testTemplate() {
        System.out.println(template);
        ValueOperations valueOperations = template.opsForValue();
        HashOperations hashOperations = template.opsForHash();
        SetOperations setOperations = template.opsForSet();
        ListOperations listOperations = template.opsForList();
        ZSetOperations zSetOperations = template.opsForZSet();

    }

    /**
     * 操作字符串类型的数据
     */
    @Test
    public void testString(){
    //set get setex setnx
        template.opsForValue().set("city","北京");
        String city = String.valueOf(template.opsForValue().get("city"));
        System.out.println(city);
        //健、值、过期时间、时间单位
        template.opsForValue().set("code","123321",3, TimeUnit.MINUTES);
        //setnx
        template.opsForValue().setIfAbsent("lock",1);
    }

    @Test
    public void testHash(){
     //hset hget hdel hkeys hvals
        template.opsForHash().put("100","name","tom");
        template.opsForHash().put("100","age","20");

        String name = String.valueOf(template.opsForHash().get("100", "name"));
        System.out.println(name);

        Set keys = template.opsForHash().keys("100");
        System.out.println(keys);

        List values = template.opsForHash().values("100");
        System.out.println(values);

        
        template.opsForHash().delete("100","age");
    }

s);

复制代码
    List values = template.opsForHash().values("100");
    System.out.println(values);

    
    template.opsForHash().delete("100","age");
}
复制代码
相关推荐
广州灵眸科技有限公司7 小时前
瑞芯微RV1126B开发板(EASY-EAI-PI2) 系统操作-线进程操作
数据库·单片机·嵌入式硬件·算法·php
·醉挽清风·7 小时前
学习笔记—算法—算法题
笔记·学习·算法
a1117768 小时前
机器人导航入门指南(从 0 到 1)
笔记·学习·slam
石一峰6998 小时前
驱动:私有数据为什么要在三个地方各挂一遍?
数据库·python·算法
ClouGence9 小时前
跨云、跨地域数据同步,这样更省心
数据库·sql·saas
范什么特西9 小时前
每日学习-01
学习
TDengine (老段)9 小时前
TDengine 函数完整参考 — 聚合、时序、字符串、时间、数学
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
旺仔丶歪歪乐9 小时前
英语启蒙APP分级体系拆解:本土课标分级与海外原版分级有什么区别
人工智能·学习·web app
xian_wwq9 小时前
【学习笔记】开源 vs 闭源:Llama / Qwen / DeepSeek 生态博弈(34/35)
笔记·学习·开源
振浩微433射频芯片9 小时前
5个IO控制20个LED?查理复用实战拆解
网络·单片机·物联网·学习·智能家居