如何增加 redis 密码验证
redis配置密码1.通过配置文件进行配置 yum方式安装的redis配置文件通常在/etc/redis.conf中,打开配置文件找到#requirepass foobared 去掉行前的注释,并修改密码为所需的密码,保存文件requirepass myRedis 重启redisudo service redis restart #或者 sudo service redis stop sudo redis-server /etc/redis.conf 这个时候尝试登录redis,发现可以登上,但是执行具体命令是提示操作不允许redis-cli -h 127.0.0.1 -p 6379 redis 127.0.0.1:6379> redis 127.0.0.1:6379> keys * (error) ERR operation not permitted redis 127.0.0.1:6379> select 1 (error) ERR operation not permitted redis 127.0.0.1:6379[1]> 尝试用密码登录并执行具体的命令看到可以成功执行redis-cli -h 127.0.0.1 -p 6379 -a myRedis redis 127.0.0.1:6379> keys * 1) "myset" 2) "mysortset" redis 127.0.0.1:6379> select 1 OK redis 127.0.0.1:6379[1]> config get requirepass 1) "requirepass" 2) "myRedis"2.通过命令行进行配置redis 127.0.0.1:6379[1]> config set requirepass my_redis OK redis 127.0.0.1:6379[1]> config get requirepass 1) "requirepass" 2) "my_redis" 无需重启redi 使用第一步中配置文件中配置的老密码登录redis,会发现原来的密码已不可用,操作被拒绝redis-cli -h 127.0.0.1 -p 6379 -a myRedis redis 127.0.0.1:6379> config get requirepass (error) ERR operation not permitted 使用修改后的密码登录redis,可以执行相应操作redis-cli -h 127.0.0.1 -p 6379 -a my_redis redis 127.0.0.1:6379> config get requirepass 1) "requirepass" 2) "my_redis 尝试重启一下redis,用新配置的密码登录redis执行操作,发现新的密码失效,redis重新使用了配置文件中的密码sudo service redis restart Stopping redis-server: [ OK ] Starting redis-server: [ OK ] redis-cli -h 127.0.0.1 -p 6379 -a my_redis redis 127.0.0.1:6379> config get requirepass (error) ERR operation not permitted redis-cli -h 127.0.0.1 -p 6379 -a myRedis redis 127.0.0.1:6379> config get requirepass 1) "requirepass" 2) "myRedis" 除了在登录时通过 -a 参数制定密码外,还可以登录时不指定密码,而在执行操作前进行认证。
redis-cli -h 127.0.0.1 -p 6379 redis 127.0.0.1:6379> config get requirepass (error) ERR operation not permitted redis 127.0.0.1:6379> auth myRedis OK redis 127.0.0.1:6379> config get requirepass 1) "requirepass" 2) "myRedis" 3.master配置了密码,slave如何配置 若master配置了密码则slave也要配置相应的密码参数否则无法进行正常复制的。
lave中配置文件内找到如下行,移除注释,修改密码即可#masterauth mstpassword
redis 怎么取消认证密码设置
展开全部 1.比较安全的办法是采用绑定IP的方式来进行控制。
请在redis.conf文件找到如下配置 # If you want you can bind a single interface, if the bind option is not# specified all the interfaces will listen for incoming connections.## bind 127.0.0.1 把# bind 127.0.0.1前面的 注释#号去掉,然后把127.0.0.1改成你允许访问你的redis服务器的ip地址,表示只允许该ip进行访问 这种情况下,我们在启动redis服务器的时候不能再用:redis-server,改为:redis-server path/redis.conf 即在启动的时候指定需要加载的配置文件,其中path/是你上面修改的redis配置文件所在目录,这个方法有一点不太好,我难免有多台机器访问一个redis服务。
2.设置密码,以提供远程登陆 打开redis.conf配置文件,找到requirepass,然后修改如下: requirepass yourpasswordyourpassword就是redis验证密码,设置密码以后发现可以登陆,但是无法执行命令了。
命令如下: redis-cli -h yourIp -p yourPort//启动redis客户端,并连接服务器keys * //输出服务器中的所有key 报错如下(error) ERR operation not permitted 这时候你可以用授权命令进行授权,就不报错了 命令如下: auth youpassword 另外,在连接服务器的时候就可以指定登录密码,避免单独输入上面授权命令 命令如下: redis-cli -h yourIp-p yourPort -a youPassword 除了在配置文件redis.conf中配置验证密码以外,也可以在已经启动的redis服务器通过命令行设置密码,但这种方式是临时的,当服务器重启了密码必须重设。
命令行设置密码方式如下: config set requirepass yourPassword 有时候我们不知道当前redis服务器是否有设置验证密码,或者忘记了密码是什么,我们可以通过命令行输入命令查看密码,命令如下: config get requirepass 如果redis服务端没有配置密码,会得到nil,而如果配置了密码,但是redis客户端连接redis服务端时,没有用密码登录验证,会提示:operation not permitted,这时候可以用命令:auth yourpassword 进行验证密码,再执行 config set requirepass,就会显示yourpassword 由于redis并发能力极强,仅仅搞密码,攻击者可能在短期内发送大量猜密码的请求,很容易暴力破解,所以建议密码越长越好,比如20位。
(密码在 conf文件里是明文,所以不用担心自己会忘记)
Windows环境下redis 配置文件中设置的密码为什么无效
pom.xml 引入redis 开启缓存org.springframework.bootspring-boot-starter-cacheorg.springframework.bootspring-boot-starter-data-redis application.properties 配置文件# Redis数据库索引(默认为0)spring.redis.database=0# Redis服务器地址spring.redis.host=localhost# Redis服务器连接端口spring.redis.port=6379# Redis服务器连接密码(默认为空)spring.redis.password=# 连接池最大连接数(使用负值表示没有限制) spring.redis.pool.max-active=8# 连接池最大阻塞等待时间(使用负值表示没有限制) spring.redis.pool.max-wait=-1# 连接池中的最大空闲连接 spring.redis.pool.max-idle=8# 连接池中的最小空闲连接 spring.redis.pool.min-idle=0# 连接超时时间(毫秒) spring.redis.timeout=0 添加cache的配置类 package www.ijava.com.configure; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.ObjectMapper; import java.lang.reflect.Method; import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.CachingConfigurerSupport; import org.springframework.cache.annotation.EnableCaching; import org.springframework.cache.interceptor.KeyGenerator; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.cache.RedisCacheManager; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; @Configuration @EnableCaching public class RedisConfig extends CachingConfigurerSupport{ @Bean public KeyGenerator keyGenerator() { return new KeyGenerator() { @Override public Object generate(Object target, Method method, Object... params) { StringBuilder sb = new StringBuilder(); sb.append(target.getClass().getName()); sb.append(method.getName()); for (Object obj : params) { sb.append(obj.toString()); } return sb.toString(); } }; } @SuppressWarnings("rawtypes") @Bean public CacheManager cacheManager(RedisTemplate redisTemplate) { RedisCacheManager rcm = new RedisCacheManager(redisTemplate);//设置缓存过期时间//rcm.setDefaultExpiration(60);//秒 return rcm; } @Bean public RedisTemplate redisTemplate(RedisConnectionFactory factory) { StringRedisTemplate template = new StringRedisTemplate(factory); Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(om); template.setValueSerializer(jackson2JsonRedisSerializer); template.afterPropertiesSet(); return template; } } RedisService package www.ijava.com.service; import java.io.Serializable; import java.util.List; import java.util.Set; import java.util.concurrent.TimeUnit; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.*; import org.springframework.stereotype.Service;/***/ @Service public class RedisService { @Autowired private RedisTemplate redisTemplate;/** //操作字符串* redisTemplate.opsForValue();//操作hash redisTemplate.opsForHash();//操作 redisTemplate.opsForList();//操作 list redisTemplate.opsForSet();//操作有序set set redisTemplate.opsForZSet();*//*** 写入缓存* @param key* @param value* @return*/ public boolean set(final String key, Object value) { boolean result = false; try { ValueOperations operations = redisTemplate.opsForValue(); operations.set(key, value); result = true; } catch (Exception e) { e.printStackTrace(); } return result; }/*** 写入缓存设置时效时间* @param key* @param value* @return*/ public boolean set(final String key, Object value, Long expireTime) { boolean result = false; try { ValueOperations operations = redisTemplate.opsForValue(); operations.set(key, value); redisTemplate.expire(key, expireTime, TimeUnit.SECONDS); result = true; } catch (Exception e) { e.printStackTrace(); } return result; }/*** 批量删除对应的value* @param keys*/ public void remove(final String... keys) { for (String key : keys) { remove(key); } }/*** 批量删除key* @param pattern*/ public void removePattern(final String pattern) { Set keys = redisTemplate.keys(pattern); if (keys.size() > 0) redisTemplate.delete(keys); }/*** ...
redis 127.0.0.1 6379> 怎么停止,然后再开始其他命令
展开全部 Redis 是一个高性能的key-value数据库, 使用内存作为主存储,数据访问速度非常快,当然它也提供了两种机制支持数据持久化存储.比较遗憾的是,Redis项目不直接支持Windows,Windows版项目是由微软开放技术团队建立和维护一个实验性项目(支持32,64位),所以并不适用生产环境,但可在Windows环境下用于开发测试。
1.下载安装 猛戳这里就到了开源首页,下载源码包,解压ZIP包后进入msvsbinrelease文件夹有三个文件分别对应32,64位,windows服务三个版本,在这里我们选择64位为例,解压redisbin64.zip 到D:redis2.4,这里主要用到redis-server.exe和redis-cli.exe, redis-server用于运行Redis服务器,redis-cli是命令行客户端,通过它连接Redis服务器,并使用Redis命令进行各种操作。
2.服务启动配置 复制源码包根目录下redis.conf到D:redis2.4,打开CMD命令提示符,输入以下命令启动redis服务。
启动: redis-server redis.conf 这样redis服务就启动成功了。
配置: 更改redis的配置需要修改redis.conf文件,以下是它一些主要的配置注释: #是否作为守护进程运行 daemonize no #Redis 默认监听端口 port 6379 #客户端闲置多少秒后,断开连接 timeout 300 #日志显示级别 loglevel verbose #指定日志输出的文件名,也可指定到标准输出端口 logfile redis.log #设置数据库的数量,默认最大是16,默认连接的数据库是0,可以通过select N 来连接不同的数据库 databases 32 #Dump持久化策略 #当有一条Keys 数据被改变是,900 秒刷新到disk 一次 #save 900 1 #当有10 条Keys 数据被改变时,300 秒刷新到disk 一次 save 300 100 #当有1w 条keys 数据被改变时,60 秒刷新到disk 一次 save 6000 10000 #当dump .rdb 数据库的时候是否压缩数据对象 rdbcompression yes #dump 持久化数据保存的文件名 dbfilename dump.rdb ########### Replication ##################### #Redis的主从配置,配置slaveof则实例作为从服务器 #slaveof 192.168.0.105 6379 #主服务器连接密码 # masterauth ############## 安全性 ########### #设置连接密码 #requirepass ############### LIMITS ############## #最大客户端连接数 # maxclients 128 #最大内存使用率 # maxmemory ########## APPEND ONLY MODE ######### #是否开启日志功能 appendonly no # AOF持久化策略 #appendfsync always #appendfsync everysec #appendfsync no ################ VIRTUAL MEMORY ########### #是否开启VM 功能 #vm-enabled no # vm-enabled yes #vm-swap-file logs/redis.swap #vm-max-memory 0 #vm-page-size 32 #vm-pages 134217728 #vm-max-threads 4 主从复制 在从服务器配置文件中配置slaveof ,填写服务器IP及端口即可,如果主服务器设置了连接密码,在masterauth后指定密码就行了。
持久化 redis提供了两种持久化文案,Dump持久化和AOF日志文件持久化。
Dump持久化是把内存中的数据完整写入到数据文件,由配置策略触发写入,如果在数据更改后又未达到触发条件而发生故障会造成部分数据丢失。
AOF持久化是日志存储的,是增量的形式,记录每一个数据操作动作,数据恢复时就根据这些日志来生成。
3.命令行操作 使用CMD命令提示符,打开redis-cli连接redis服务器 ,也可以使用telnet客户端 # redis-cli -h 服务器 –p 端口 –a 密码 redis-cli.exe -h 127.0.0.1 -p 6379 连接成功后,就可对redis数据增删改查了,如字符串操作: 以下是一些服务器管理常用命令: info #查看服务器信息 select #选择数据库索引 select 1 flushall #清空全部数据 flushdb #清空当前索引的数据库 slaveof #设置为从服务器 slaveof no one #设置为主服务器 shutdown #关闭服务
linux中安装redis 是使用redis
展开全部 这是由于你按ctrl+z 将redis的服务进程挂起来了。
处理方法有:修改redis.conf文件将daemonize改成yes(也就是改成后台进程),然后重启redis服务。
安装好redis后如何启动redis及修改配置文件? 1、解压并且make后进行make install 为启动redis做准备,进入redis安装目录,然后需要从中拷贝redis.config文件。
这时候需要备份,我们在/etc/下面新建一个文件夹 2、然后将文件拷贝到此处,执行cp命令进行拷贝,格式如下:cp redis.config位置 目标位置 3、然后进行修改redis.config文件,进入etc目录,用vi进入需要修改的redis.config 4、进入修改配置文件,找到general,看到下面:# By default Redis does not run as a daemon. Use 'yes' if you need it.# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程。
5、修改下面的no 为yes ,然后保存退出 wq! 6、启动redis redis-server /etc/myredis/redis.config,然后再测试启动成功与否,redis-cli ping 7、然后测试set value是否可用。
发现可用 OK完成。
...
redis 命令 事件 怎么保证串行执行
在linux中批量操作redis中的keys的方法:1.统计个数:redis中名称含有OMP_OFFLINE的key的个数;src/redis-clikeys"*OMP_OFFLINE*"|wc-l2.批量删除批量删除0号数据库中名称含有OMP_OFFLINE的key:src/redis-cli-n0keys"*OMP_OFFLINE*"|xargssrc/redis-cli-n0del在redis的客户端环境中并不支持批量删除。
转载请注明出处51数据库 » redis cli password
wangkx1990