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");
}
复制代码
相关推荐
可乐仙人3 分钟前
常见MQ及类MQ对比:Redis Stream、Redis Pub/Sub、RocketMQ、Kafka 和 RabbitMQ
redis·kafka·rocketmq
凡人的AI工具箱9 分钟前
PyTorch深度学习框架60天进阶学习计划 - 第41天:生成对抗网络进阶(一)
人工智能·pytorch·python·深度学习·学习·生成对抗网络
大雄野比1 小时前
【scikit-learn基础】--『监督学习』之 K-近邻分类
学习·分类·scikit-learn
知远同学1 小时前
Docker学习笔记-docker安装、删除
笔记·学习·docker
东风西巷1 小时前
手机上的PDF精简版:随时随地享受阅读
学习·智能手机·pdf·软件需求
虾球xz2 小时前
游戏引擎学习第228天
c++·学习·游戏引擎
Nuyoah.2 小时前
《Vue3学习手记2》
javascript·vue.js·学习
veminhe2 小时前
Node.js 数据库 CRUD 项目示例
数据库·node.js
星星火柴9362 小时前
Git 学习笔记
笔记·git·学习
HX科技2 小时前
树莓派_利用Ubuntu搭建gitlab
数据库·ubuntu·gitlab