Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >redis如何设置密码及验证密码_redis如何设置密码及验证密码

redis如何设置密码及验证密码_redis如何设置密码及验证密码

作者头像
全栈程序员站长
发布于 2022-10-04 01:34:18
发布于 2022-10-04 01:34:18
8.4K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

在百度云安装redis服务之后,一直给我发送系统安全警告,推荐我redis设置访问密码,于是出于安全考虑我就设置一下redis的密码

1.修改redis.conf配置文件:

找到requirepass这一行,解注这一行代码,requirepass后面就是跟的自己的密码。

2.关闭redis服务,发现报错:

可以使用下面两个方法关闭服务:

方式一:通过ps aux|grep redis命令查看redis进程,然后通过kill -9 pid方式杀掉进程

如图34691就是pid

方式二:用redis-cli客户端登录, 然后shutdown 然后exit 就OK了

3.启动redis服务:

我们用redis.conf配置文件启动redis服务,然后登录客户端,发现这时候需要我们输入密码了,说明修改的密码已经生效了

4.使用密码连接redis客户端:

使用./redis-cli -a 密码 连接客户端

这时候发现就能连上客户端了!

5.使用jedispool连接redis服务,首先编写redis.properties属性配置文件,将密码端口等信息填写进去

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#ip地址
redis.host=192.168.25.131
#端口号
redis.port=6379
#如果有密码
redis.password=123456
#客户端超时时间单位是毫秒 默认是2000
redis.timeout=3000
#数据库,默认的是0
redis.database=0
#最大空闲数
maxIdle=300  
#连接池的最大数据库连接数。设为0表示无限制,如果是jedis 2.4以后用redis.maxTotal
maxActive=1000
#控制一个pool可分配多少个jedis实例,用来替换上面的redis.maxActive,如果是jedis 2.4以后用该属性
maxTotal=1000
#最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
maxWait=1000
#在空闲时检查有效性, 默认false
testOnBorrow=false
#连接耗尽是否阻塞,false代表抛异常,true代表阻塞直到超时,默认为true
blockWhenExhausted=false



#下面的不是必须的配置
#连接的最小空闲时间 默认1800000毫秒(30分钟)
minEvictableIdleTimeMillis=300000  
#每次释放连接的最大数目,默认3
numTestsPerEvictionRun=1024  
#逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1
timeBetweenEvictionRunsMillis=30000  
#是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个,数据量大的时候建议关闭
testWhileIdle=true 

6.编写applicationContext-redis.xml,将jedispool纳入spring管理,加载属性配置文件(外面包一层JedisClientPool只是为了如果使用集群方式的话就不需要改业务代码了,只需要改配置就行,使用了策略模式)

查看jedisPool的源码我们发现如果想要设置密码只有两种构造方法可以选用,这里我们选择如下这种构造方法在spring配置文件中进行配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port,
      int timeout, final String password, final int database) {
    this(poolConfig, host, port, timeout, password, database, null);
  }

由上面的构造方法我们得知如果jedispool使用密码的话需要配置poolConfig,host,port,timeout,password,database等属性,我们在spring的xml文件中进行配置,并加载上面第五点已经写好的配置文件就行了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	<!--连接redis单机版,创建了一个JedisClientPool的bean,创建这个bean需要一个jedisPool属性,在下面-->
	<bean class="cn.e3mall.common.jedis.JedisClientPool" id="jedisClientPool">
		<property name="jedisPool" ref="jedisPool"></property>
	</bean>
	<!--JedisPool这个bean的构造方法需要多个参数-->
	<bean class="redis.clients.jedis.JedisPool" id="jedisPool" >
		<constructor-arg name="host" value="${redis.host}"></constructor-arg>
		<constructor-arg name="port" value="${redis.port}"></constructor-arg>
		<constructor-arg name="password" value="${redis.password}"></constructor-arg>
		<constructor-arg name="timeout" value="${redis.timeout}"></constructor-arg>
		<constructor-arg name="database" value="${redis.database}"></constructor-arg>
		<constructor-arg name="poolConfig" ref="jedisPoolConfig"></constructor-arg>
	</bean>
	<bean class="redis.clients.jedis.JedisPoolConfig" id="jedisPoolConfig">
		<property name="maxIdle" value="${maxIdle}" />
		<property name="maxTotal" value="${maxActive}" />
		<property name="maxWaitMillis" value="${maxWait}" />
		<property name="testOnBorrow" value="${testOnBorrow}" />
		<property name="blockWhenExhausted" value="${blockWhenExhausted}" />
	</bean>

7.jedisPool接口以及实现类

下面我们编写jedispool的接口以及实现类:

接口:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package cn.e3mall.common.jedis;

import java.util.List;

public interface JedisClient {

	String set(String key, String value);
	String get(String key);
	Boolean exists(String key);
	Long expire(String key, int seconds);
	Long ttl(String key);
	Long incr(String key);
	Long hset(String key, String field, String value);
	String hget(String key, String field);
	Long hdel(String key, String... field);
	Boolean hexists(String key, String field);
	List<String> hvals(String key);
	Long del(String key);
}

实现类:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package cn.e3mall.common.jedis;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

import java.util.List;

public class JedisClientPool implements JedisClient {
	
	private JedisPool jedisPool;

	public JedisPool getJedisPool() {
		return jedisPool;
	}

	public void setJedisPool(JedisPool jedisPool) {
		this.jedisPool = jedisPool;
	}

	@Override
	public String set(String key, String value) {
		Jedis jedis = jedisPool.getResource();
		String result = jedis.set(key, value);
		jedis.close();
		return result;
	}

	@Override
	public String get(String key) {
		Jedis jedis = jedisPool.getResource();
		String result = jedis.get(key);
		jedis.close();
		return result;
	}

	@Override
	public Boolean exists(String key) {
		Jedis jedis = jedisPool.getResource();
		Boolean result = jedis.exists(key);
		jedis.close();
		return result;
	}

	@Override
	public Long expire(String key, int seconds) {
		Jedis jedis = jedisPool.getResource();
		Long result = jedis.expire(key, seconds);
		jedis.close();
		return result;
	}

	@Override
	public Long ttl(String key) {
		Jedis jedis = jedisPool.getResource();
		Long result = jedis.ttl(key);
		jedis.close();
		return result;
	}

	@Override
	public Long incr(String key) {
		Jedis jedis = jedisPool.getResource();
		Long result = jedis.incr(key);
		jedis.close();
		return result;
	}

	@Override
	public Long hset(String key, String field, String value) {
		Jedis jedis = jedisPool.getResource();
		Long result = jedis.hset(key, field, value);
		jedis.close();
		return result;
	}

	@Override
	public String hget(String key, String field) {
		Jedis jedis = jedisPool.getResource();
		String result = jedis.hget(key, field);
		jedis.close();
		return result;
	}

	@Override
	public Long hdel(String key, String... field) {
		Jedis jedis = jedisPool.getResource();
		Long result = jedis.hdel(key, field);
		jedis.close();
		return result;
	}

	@Override
	public Boolean hexists(String key, String field) {
		Jedis jedis = jedisPool.getResource();
		Boolean result = jedis.hexists(key, field);
		jedis.close();
		return result;
	}

	@Override
	public List<String> hvals(String key) {
		Jedis jedis = jedisPool.getResource();
		List<String> result = jedis.hvals(key);
		jedis.close();
		return result;
	}

	@Override
	public Long del(String key) {
		Jedis jedis = jedisPool.getResource();
		Long result = jedis.del(key);
		jedis.close();
		return result;
	}

}

8.测试类:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package cn.e3mall.jedis;

import cn.e3mall.common.jedis.JedisClient;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * @author sunqizheng
 * @Title: TestJedisClient
 * @ProjectName ttmall
 * @Description: TODO
 * @date 2018/9/1917:21
 */
public class TestJedisClient {
    @Test
    public void TestJedisClient() throws Exception{
        //初始化一个spring容器
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-redis.xml");
        //从容器中获得JedisClient对象,(拿到接口的对象)
        JedisClient jedisClient = applicationContext.getBean(JedisClient.class);
        jedisClient.set("mytest","jedisClient1");
        String string = jedisClient.get("mytest");
        System.out.println(string);
    }
}

测试结果:

测试成功

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月5日 下,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
redis集群与jedis
Redis集群中至少应该有三个节点。要保证集群的高可用,需要每个节点有一个备份机。
周杰伦本人
2023/10/12
2450
redis集群与jedis
windows简易版本 Redis 使用 demo样例(ssm框架下)
1. 在网上下载 windows 版本 的Redis 。下载了直接解压出来 :
微风-- 轻许--
2022/04/13
3800
windows简易版本 Redis 使用 demo样例(ssm框架下)
java web项目中redis集群或单击版配置详解
单机版配置 <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <!-- 最大连接数 --> <property name="maxTotal" value="100" /> <!-- 最大空闲连接数 --> <property name="maxIdle" value="300" /> <!-- 每次释放连接的最大数目 -->
IT架构圈
2018/06/01
9380
Redis客户端操作之Jedis
  在前面的文章给大家详细的介绍了Redis各种知识点,本文主要给大家介绍下java程序怎么操作Redis数据。
用户4919348
2019/04/02
1.3K0
Redis客户端操作之Jedis
jedis连接单机版和集群版redis
1 JedisClient接口 package com.shi.jedis; public interface JedisClient { String set(String key, String value); String get(String key); Boolean exists(String key); Long expire(String key, int seconds); Long ttl(String key); Long incr(String key); Lon
用户5927264
2019/07/31
2.2K0
一文轻松搞懂redis集群原理及搭建与使用
今天早上由于zookeeper和redis集群不在同一虚拟机导致出了点很小错误(人为),所以这里总结一下redis集群的搭建以便日后所需同时也希望能对你有所帮助。 笔主这里使用的是Centos7.如果你碰到任何问题都可以来问我
全栈程序员站长
2022/07/21
3700
redis和spring集成
redis和spring框架的整合 我这里创建的是maven工程,通过maven锁定版本号,管理jar包之间的依赖 1.在pom文件中,引入spring和redis的jar包的坐标: <properties> <junit.version>4.12</junit.version> <spring.version>4.2.4.RELEASE</spring.version> <jedis.version>2.7.2</jedis.version>
用户2146856
2018/05/18
1.1K0
day72_淘淘商城项目_05_匠心笔记
taotao-portal-web工程中,动态展示内容信息。 前端团队:负责JS,html等开发。 后端团队:负责后台的开发并提供数据给前端。
黑泽君
2018/11/21
6460
Redis的使用--(二)与Spring的整合
主题词:使用Jedis、项目整合Redis 项目中整合jedis和spring框架: 设计一个相关接口(把String和Hash类型常用方法进行封装) 完成两个相关实现类(jedisPool的实现和jedisCluster的实现:属性注入) 完成spring-jedis.xml(将jedisPool的实现和jedisCluster的实现进行注入操作) 具体内容参看代码实现 需求:在tt-common工程的src/test/java中完成Jedis的简单使用 在tt-common工程引入jedis的依
MiChong
2020/09/24
4900
使用Java客户端对Redis进行操作
  上篇文章我们介绍了如何在centos7下面进行安装单机版redis以及redis集群。这篇文章,我们来聊一聊如何使用java客户端来进行操作redis。我们知道redis的java客户端有很多,如:jedis、redission等。这篇文章着重介绍我们平常使用最多的redis的java客户端jedis。
阿豪聊干货
2018/08/09
1.4K0
Redis项目案例
项目源码 链接:https://pan.baidu.com/s/1Bat7QS6akuSF4k6MprIFiw 提取码:z23d
时间静止不是简史
2020/07/27
1.7K0
Redis项目案例
在springmvc中配置jedis:
主要学习https://github.com/thinkgem/jeesite。一下代码均参考于此并稍作修改。 1.jedis 首先,需要添加jedis: <!--jedis--> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.8.0</version> </dependency> 2.applicationContext-jedis.xml
Ryan-Miao
2018/03/13
2.8K0
JAVA连接Redis客户端多种方式实现
Jedis介绍 Redis不仅使用命令来操作,而且可以使用程序客户端操作。现在基本上主流的语言都有客户端支持,比如java、C、C#、C++、php、Node.js、Go等。 在官方网站里列一些Java的客户端,有Jedis、Redisson、Jredis、JDBC-Redis、等其中官方推荐使用Jedis和Redisson。 Jedis同样也是托管在github上,地址:https://github.com/xetorthio/jedis
全栈程序员站长
2022/09/06
1K0
Java Spring mvc 操作 Redis 及 Redis 集群
古时的风筝
2018/01/08
2K0
jedispool释放连接_redis项目实例
1.下载redis,地址:https://download.csdn.net/download/rexueqingchun/10324719
全栈程序员站长
2022/10/04
1.5K0
Shiro+Redis实现tomcat集群session共享
  当我们使用了nginx做项目集群以后,就会出现一个很严重的问题亟待解决,那就是:tomcat集群之间如何实现session共享的问题,如果这个问题不解决,就会出现登陆过后再次请求资源依旧需要登陆的问题。这篇文章我们就解决这个问题。
阿豪聊干货
2018/08/09
8830
1、Redis服务搭建 2、为功能添加缓存功能
2.redis介绍 2.1.什么是redis Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如 下: 字符串类型 散列类型 列表类型 集合类型 有序集合类型。 2.2.redis的应用场景 缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用) 分布式集群架构中的session分离。 聊天室的在线好友列表。 任务队列。(秒杀、抢购、12306等等) 应用排行榜。 网站访问统计。 数据过期处理(可以精确到毫秒)
爱明依
2019/03/12
5340
《Redis篇:》redis存取数据《使用配置文件配置jedisPool》
一、代码 1.controller package com.qf.controller; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.qf.pojo.User; import org.springframework.beans.factory.annotation.Autowired; import org.
2020/11/26
5810
《Redis篇:》redis存取数据《使用配置文件配置jedisPool》
深入浅出Redis-Spring整合Redis
概述:    在之前的博客中,有提到过Redis 在服务端的一些相关知识,今天主要讲一下Java 整合Redis的相关内容。    下面是Jedis 的相关依赖: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.5.1</version> </dependency>
九灵
2018/03/09
9050
深入浅出Redis-Spring整合Redis
spring配置文件详解_jedis连接redis集群
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/03
5880
相关推荐
redis集群与jedis
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验