Redis新手的坑,无法连接、缺少类、没有密码
阿西吧,自己太菜了,用SpringBoot调用Redis缓存的时候,出了各种问题,记录一下,大家别学我
本文有自己的经验,也有从其他博客整理来的零零散散的经验。
1、安装Redis
安装redis,一般有很多方法,比如yun安装,npm安装,直接压缩包安装,docker运行等等等等
先说yum里面的
yum安装比较简单
首先安装epel源
yum install -y epel-release
然后安装redis
yum install -y redis
设置成开机自启动
chkconfig redis on
卸载redis
yum remove redis
yum安装的配置文件的位置
配置文件在/etc/redis.conf
服务器和客户端在 /usr/bin/redis-server redis-cli
whereis redis 可以查看配置文件在哪
docker安装
docker会用的话,应该很清晰,
docker search redis
docker pull 镜像名
docker images 查看镜像
docker 默认没有配置文件,所以,默认使用问题很大
docekr 自定义配置文件启动 https://www.jianshu.com/p/ff599cddc869
压缩包安装
来自菜鸟
**下载地址:**http://redis.io/download,下载最新稳定版本。
$ wget http://download.redis.io/releases/redis-2.8.17.tar.gz
$ tar xzf redis-2.8.17.tar.gz
$ cd redis-2.8.17
$ make
make完后 redis-2.8.17目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli,两个程序位于安装目录 src 目录下:
下面启动redis服务.
$ cd src
$ ./redis-server
注意这种方式启动redis 使用的是默认配置。也可以通过启动参数告诉redis使用指定配置文件使用下面命令启动。
$ cd src
$ ./redis-server ../redis.conf
redis.conf 是一个默认的配置文件。我们可以根据需要使用自己的配置文件。
默认使用的是redis目录下的redis.conf文件,可以直接修改这个文件,也可以新建一个文件(这样比较保险)
2、redis配置文件
这里先不说高级配置
下面给了个中文翻译的配置文件(看不懂英文了可以看这个)
redis配置文件详解https://www.jianshu.com/p/41f393f594e8
就最简单的,让你的本地程序能访问远程服务器上的redis
错误:无法链接redis,默认情况下,外网是没办法访问redis的,需要修改配置
找到redis的配置文件 redis.conf
修改 protected-mode yes 改为:protected-mode no
注释掉 #bin 127.0.0.1
另外redis.conf中设置了密码也会出现这种情况,注释掉 #requirepass 这行
设置密码两种办法:
原文https://www.cnblogs.com/tenny-peng/p/11543440.html
需要使用./redis-cli进入redis,
客户端使用config get requirepass命令查看密码
>config get requirepass
1)"requirepass"
2)"" //默认空
客户端使用config set requirepass yourpassword命令设置密码
>config set requirepass 123456
>OK
一旦设置密码,必须先验证通过密码,否则所有操作不可用
>config get requirepass
(error)NOAUTH Authentication required
使用auth password验证密码
>auth 123456
>OK
>config get requirepass
1)"requirepass"
2)"123456"
另外一种办法
- 配置文件设置密码
在redis根目录下找到redis.windows.conf配置文件,搜索requirepass,找到注释密码行,添加密码如下:
# requirepass foobared
requirepass tenny //注意,行前不能有空格
重启服务后,客户端重新登录后发现
>config get requirepass
1)"requirepass"
2)""
密码还是空?
网上查询后的办法:创建redis-server.exe 的快捷方式, 右键快捷方式属性,在目标后面增加redis.windows.conf, 这里就是关键,你虽然修改了.conf文件,但是exe却没有使用这个conf,所以我们需要手动指定一下exe按照修改后的conf运行,就OK了。
所以,这里我再一次重启redis服务(指定配置文件)
>redis-server.exe redis.windows.conf
客户端再重新登录,OK了。
>redis-cli.exe -h 127.0.0.1 -p 6379 -a 123456
>config get requirepass
1)"requirepass"
2)"123456"
3、SpringBoot与Redis的坑
SpringBoot除去注解式的缓存外,还可以使用RedisTemplate来访问
注意RedisTemplate是RedisAutoConfiguration中,在系统启动时注入在系统中的Bean,所以我们使用需要引入
然后使用RedisTemplate获取ValueOperations类,用此进行操作。
@Autowired
StringRedisTemplate stringRedisTemplate;
@Test
void redisTest(){
ValueOperations valueOperations=stringRedisTemplate.opsForValue();
valueOperations.set("456","465");
System.out.println(valueOperations.get("123"));
}
java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool
这个看报错信息你应该知道是缺少了类,认真看一下是缺少了一个依赖(想不到吧,只是redis的依赖还不够)
引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
有用了求个赞,谢谢hxd
Redis新手的坑,无法连接、缺少类、没有密码的更多相关文章
- python redis模块的常见的几个类 Redis 、StricRedis和ConnectionPool
日常写代码过程中,经常需要连接redis进行操作.下面我就介绍下python操作redis模块redis中的几个常见类,包括redis连接池. 一.StrictRedis 类 请看代码:. #!/us ...
- springBoot集成Redis遇到的坑(择库)源码分析为什么择库失败
提示: springboot提供了一套链接redis的api,也就是个jar包,用到的连接类叫做LettuceConnectionConfiguration,所以我们引入pom时是这样的 <de ...
- 在centos使用redis几个坑
问题来源 最近公司的平台需要做一些分布式的规划,其中会话我们打算用redis来存储,因为之前也有了解过redis,但都是在windows上使用,为了发挥redis的优势,这次我们打算直接在Linux上 ...
- Redis02 Redis客户端之Java、连接远程Redis服务器失败
1 查看支持Java的redis客户端 本博文采用 Jedis 作为redis客户端,采用 commons-pool2 作为连接redis服务器的连接池 2 下载相关依赖与实战 2.1 到 Repos ...
- Redis适配采坑记
Redis适配采坑记 相对于其他的适配,Redis可以说是非常简单的其中只发现一个坑 问题一: 问题描述: redis认证失败 问题详解: redis连接配置时,本地需要采用password属性,远程 ...
- JDBC连接工厂类
看到有些书上数据库连接提供两个工厂类,一个连接工厂类一个关闭工厂类,并且关闭工厂类写了多种重载形式,感觉没有必要,这样写比较简洁一些. /** * 抽象出的连接工厂类,提供连接数据库和关闭连接的 ...
- 那些年踩过的坑之:first-child伪类选择器
原文:那些年踩过的坑之:first-child伪类选择器 :first-child 选择器用于选取属于其父元素的首个子元素的指定选择器.——w3school 嗯,乍一看好像说的不是很明白,因此这个选择 ...
- Redis随笔(二)redis desktop manager 安装并且连接redis服务器
1.首先在win10下安装redis desktop manager 2.查看虚拟机防火墙状态,启动状态,则关闭掉 查看防火墙状态: systemctl status firewalld.servic ...
- 分布式改造剧集之Redis缓存采坑记
Redis缓存采坑记 前言 这个其实应该属于分布式改造剧集中的一集(第一集见前面博客:http://www.cnblogs.com/Kidezyq/p/8748961.html),本来按照顺序 ...
随机推荐
- 22 Specifications动态查询
Specifications动态查询 有时我们在查询某个实体的时候,给定的条件是不固定的,这时就需要动态构建相应的查询语句,在Spring Data JPA中可以通过JpaSpecificationE ...
- 如何分析SpringBoot源码模块及结构?--SpringBoot源码(二)
注:该源码分析对应SpringBoot版本为2.1.0.RELEASE 1 前言 本篇接 如何搭建自己的SpringBoot源码调试环境?--SpringBoot源码(一). 前面搭建好了自己本地的S ...
- PHP的魔术常量(常用八大常量)
PHP的魔术常量都是由不同的扩展库定义的,只有在加载了这些扩展时才会出现,或者动态加载后 有八个魔术常量他们的值随着他们在代码中的位置改变而改变. __LINE__ 文件中的当前行号. 实列: &l ...
- Sublime text 3 运行python3
要在Sublime text3编译器中成功运行 python3,需要在编译器设置中将python3添加至编译器中 新建编译系统 编辑弹出的文件,添加如下内容: { "cmd":[& ...
- css 一行自适应等比例布局
一.浮动布局+百分比 .row { width:100%; overflow:hidden; zoom:1; } .item { float: left; width: 20%; } 该样式兼容性较好 ...
- 033.Kubernetes集群安全-API Server认证及授权
一 Kubernetes集群安全 1.1 安全机制 Kubernetes通过一系列机制来实现集群的安全控制,其中包括API Server的认证授权.准入控制机制及保护敏感信息的Secret机制等.集群 ...
- Mol Cell Proteomics. | Prediction of LC-MS/MS properties of peptides from sequence by deep learning (通过深度学习技术根据肽段序列预测其LC-MS/MS谱特征) (解读人:梅占龙)
通过深度学习技术根据肽段序列预测其LC-MS/MS谱特征 解读人:梅占龙 质谱平台 文献名:Prediction of LC-MS/MS properties of peptides from se ...
- 【转】linux中ifconfig 命令详解详解
1 概述 ifconfig工具不仅可以被用来简单地获取网络接口配置信息,还可以修改这些配置.用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在.要想将上述的配置信息永远的存的电 ...
- linux入门系列19--数据库管理系统(DBMS)之MariaDB
前面讲完Linux下一系列服务的配置和使用之后,本文简单介绍一款数据库管理系统(MySQL的兄弟)MariaDB. 如果你有MySQL或其他数据的使用经验,MariaDB使用起来将非常轻松. 本文讲解 ...
- 【2019南昌网络赛】B-Fire-Fighting Hero
题目链接 分析 英雄方面很简单,跑一遍 Dijkstra 就行了,但是灭火团队就有点麻烦了. 这里可以借助一下最大流的建边来解决这个问题: 我们可以另外找一个点作为起点,然后建立从那个点到每一个团队的 ...