redis的学习

news2024/11/18 17:46:42

!

快速入门

安装

1.使用docker安装redis

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容器

### 通过 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

配置类


@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;
    }
}

快速使用

 @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");
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1955501.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 百题(实战快速掌握语法)_2(链表)

目录 实现链表类 挑战介绍 挑战内容 挑战要求 示例代码 版权说明 参考答案 代码分析: Node 类 LinkedList 类 方法分析 总结 删除链表的重复项 挑战介绍 挑战内容 挑战要求 示例代码 版权说明 参考答案 代码分析: 寻找链表倒数第 k…

算法笔记--知识点记录2

enumerate函数 enumerate 是 Python 中的一个内置函数,它用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,通常用在 for 循环当中。 使用 enumerate 可以同时获得每个元…

什么是C++活锁?

听过太多的死锁(Deadlock),今天来聊聊什么是C活锁(Livelock)。 C中的活锁(Livelock)并非特指C语言本身的一个概念,而是并发编程和操作系统中可能遇到的一种现象。活锁指的是任务或者…

数据库 执行sql添加删除字段

添加字段: ALTER TABLE 表明 ADD COLUMN 字段名 类型 DEFAULT NULL COMMENT 注释 AFTER 哪个字段后面; 效果: 删除字段: ALTER TABLE 表明 DROP COLUMN 字段;

【C++】C++入门知识(上)

好久不见&#xff0c;本篇介绍一些C的基础&#xff0c;没有特别的主题&#xff0c;话不多说&#xff0c;直接开始。 1.C的第一个程序 C中需要把定义文件代码后缀改为 .cpp 我们在 test.cpp 中来看下面程序 #include <stdio.h> int main() {printf("hello world\n…

Linux文件与相关函数的知识点3

main函数参数 int main(int argc,char *argv[]) { return 0; } C语言规定了main函数的参数只能有两个&#xff0c;一个是argc,一个是argv并且&#xff0c;argc只能是整数&#xff0c;第二个必须是指向字符 串的指针数组。 argc: 参数表示命令行中参数的个数&#xff0…

【建议收藏】CTF网络安全夺旗赛刷题指南(非常详细)零基础入门到精通,收藏这一篇就够了

在数字化浪潮汹涌澎湃的今天&#xff0c;网络安全已成为国家、企业和个人无法忽视的重要议题。为了挖掘和培养网络安全人才&#xff0c;一场场紧张刺激、充满智慧的CTF&#xff08;Capture The Flag&#xff09;安全竞赛应运而生。 一、CTF安全竞赛简介 CTF安全竞赛&#xff0c…

鸿蒙仓颉语言之【安全密码库crypto4cj】功能示例

功能示例 MD5使用样例 from crypto4cj import md5cj.*main() { var md: Array<UInt8> Array<UInt8>(16, item: 0)var result: String String(Array<Char>(33, item: 0))var str: String "helloworld"var ret md5(str.toUtf8Array(), md)r…

lua 游戏架构 之 游戏 AI (六)ai_auto_skill

定义一个为ai_auto_skill的类&#xff0c;继承自ai_base类。ai_auto_skill类的目的是在AI自动战斗模式下&#xff0c;根据配置和条件自动选择并使用技能。 lua 游戏架构 之 游戏 AI &#xff08;一&#xff09;ai_base-CSDN博客文章浏览阅读379次。定义了一套接口和属性&#…

ASCII码图片

在许多计算机语言中&#xff0c;比较字母、字符串大小时&#xff0c;都会运用到ASCII码。而这是很多创客容易遗忘的&#xff0c;今天发给大家ASCII码大全图片&#xff0c;记得收藏

Redis是多线程还是单线程?

文章目录 1、用户态和内核态2、阻塞IO3、非阻塞IO4、IO多路复用4.1 select4.2 poll4.3 epoll4.4 epoll中的ET和LT4.5 epoll的服务端流程 5、信号驱动6、异步IO7、对比8、Redis是单线程的吗&#xff1f;9、单线程多线程网络模型变更 1、用户态和内核态 1、ubuntu和Centos 都是Li…

Golang 知识结构图

总结Go的入门知识结构&#xff0c;如下图所示&#xff1a;

(史上最全的)Spring6框架学习教程

一、什么是Spring 1.javaWeb框架发展史 1、ServletJSPJavaBean(跳转页面、业务逻辑判断、数据库查询) 2、MVC三层架构(M Model pojo(User)V-view(USP)C-(controller-servlet)) (web-跳转页面service-业务逻辑判断 new UserService0;dao-数据库查询 new UserDao(); ) 3、使用…

【C++】—— 类和对象(一)

【C】—— 类和对象&#xff08;一&#xff09; 1、类的定义1.1、类定义1.1.1、类定义格式1.1.2、成员变量的标识1.1.3、C 中的 s t r u c t struct struct1.1.4、C 中的内联函数1.1.5、总结 1.2、访问限定符1.3、类域 2、实例化2.1、实例化的概念2.2、对象大小2.2.1、对象的大…

黑神话悟空游戏什么时候上线能玩 黑神话悟空是哪个公司 苹果电脑能玩黑神话悟空吗

《黑神话&#xff1a;悟空》是一款以中国神话为背景的动作角色扮演游戏。故事取材于中国古典小说“四大名著”之一的《西游记》。 你将扮演一位“天命人”&#xff0c;为了探寻昔日传说的真相&#xff0c;踏上一条充满危险与惊奇的西游之路。 一、《黑神话&#xff1a;悟空》什…

【Linux系统】线程的互斥

互斥 互斥概念 多个线程能够看到的资源称为共享资源&#xff0c;那我们需要对这种资源进行保护&#xff0c;需要用到互斥&#xff01;&#xff01;&#xff01; 见一见多线程访问的问题 --- 抢票问题 int tickets 1000;void route(const std::string& name) {while(tr…

Docker容器的数据管理

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 我们在使用Docker的过程中&#xff0c;往往需要能查看容器内应用产生的数据&#xff0c;或者需要把容器内的数据进行备份&#x…

python学习笔记——数字

一、数字概述 1.Python 数字数据类型用于存储数值。 数据类型是不允许改变的&#xff0c;这就意味着如果改变数字数据类型的值&#xff0c;将重新分配内存空间。 2.可以使用del语句删除一些数字对象的引用。 del var1[,var2[,var3[....,varN]]]3.可以通过使用del语句删除单个或…

【python014】Python爬取并解析潮汐天气简报-潮历数据

1.欢迎点赞、关注、批评、指正&#xff0c;互三走起来&#xff0c;小手动起来&#xff01; 【python014】Python爬取并解析潮汐天气简报-潮历数据&#xff0c;源代码下载【python014】Python爬取并解析潮汐天气简报-潮历数据&#xff0c;源代码下载【python014】Python爬取并解…

Aria2 任意文件写入漏洞

目录 Aria2介绍漏洞描述漏洞复现 Aria2介绍 Aria2是一个在命令行下运行&#xff0c;多协议&#xff0c;多来源下载工具&#xff08;HTTP / HTTPS&#xff0c;FTP&#xff0c;BitTorrent&#xff0c;Metalink&#xff09;&#xff0c;内建XML-RPC用户界面。Aria提供RPC服务器&a…