Redis
文章目录
1.安装开启关闭
Redis是当今非常流行的基于KV结构的作为Cache使用的NoSQL数据库
cd /home/soft/
tar -zxvf redis-stable.tar.gz -C /usr/local/
cd /usr/local/
cd redis-stable/
cd src/
./redis-server
./redis-server &
后台启动./rdis-cli
进入客户端ps -ef | grep redis
查看redis进程./redis-cli shutdown
客户端关闭ps -ef | grep redis
先查看进程号
再 kill 进程号
2.远程连接
1.修改配置文件
-
找到配置文件进行备份
cp redis.conf bak_redis.conf
-
vim redis.conf
-
/bind
找到bind 127.0.0.1
-
点击i,切换为插入模式
-
添加注释
#
-
将保护模式改为
no
-
点击
Esc
-
输入
:wq
保存并退出
2.再次打开redis
- 此时需要指明配置文件的位置
cd src
先打开src文件夹- 再启动服务
./redis-server ../redis.conf &
后台启动systemctl status firewalld
查看防火墙状态
3.Redis基本操作命令
1.ping
返回PONG
表示redis
服务正常
2.查看当前数据库中key的数目:dbsize
3.redis默认使用16个库
从db0
-db15
4.切换数据命令:select index
比如select 5
5.删除当前库中的所有数据;flushdb
6.退出客户端:exit
或者quit
4.Redis的Key的操作命令
1.keys
-
语法:
key pattern
-
作用:查找符合模式
pattern
的key
,可以为通配符。-
通配符:
*
:表示0-多个字符。?
: 表示单个字符
-
例如:
2.exists
- 语法
exists key[key...]
- 作用:判断key是否存
- 返回值:整数,存在key返回1,其他返回0.使用多个key,返回存在的key数量。
3.expire
- 语法:expire key seconds
- 作用:设置key的生存时间,超过时间,key会自动删除。单位是秒。
- 返回值:设置成功返回数字1,其他情况是0.
4.ttl
-
语法:
ttl key
-
作用:以秒为单位,返回key的剩余时间,key永不过期
-
返回值:
- -1:没有设置key的生存时间,key永不过期
- -2:key不存在
- 数字:key的剩余时间,秒为单位。
5.type
- 语法:
type key
- 作用:查看key所存储值的数据类型
- 返回值:字符串表示的数据类型
- none(key不存在)
- string(字符串)
- list(列表)
- set(集合)
- zset(有序集)
- hash(哈希表)
6.del
- 语法:
del key[key...]
- 作用:删除存在的key,不存在的key忽略
- 返回值:数字,删除的key数量
5.五种数据类型
5.1 字符串类型string
- 能储存任何形式的字符串,包括二进制数据,序列化后的数据,JSON化的对象甚至是一张图片。最大512M.
5.1.1基本命令
1.set
- 将字符串值value设置到key中
- 语法:
set key value
2.get
- 获取key对应的值
get key
3.incr
- 将key中存储的数字值加1,如果key不存在,则key的值先被初始化为0再执行incr操作(只能对数字类型的数据操作)
- 语法:
incr key
4.decr
- 将key中存储的数字值减1,如果key不存在,则key的值先被初始化为0再执行decr操作(只能对数字类型的数据操作)
- 语法
decr key
5.append
-
将内容追加到key
-
语法:
append key value
-
说明:如果key存在,将value追加到key原来旧值的末尾
如果key不存在,则将key设置值为value
-
返回值:追加字符串之后的总长度
5.1.2常用命令
1.strlen
- 语法:
strlen key
- 返回key所存储的字符串值的长度
- 返回值:
- 如果key存在,返回字符串长度
- key不存在,返回0
2.getrange
- 语法:
getrange key start end
- 作用: 获取key中字符串值从start开始到end结束的字符串,包括start和end,负数表示从字符串末尾开始,-1表示最后一个字符
- 返回值:截取的字符串
3.setrange
- 语法:
setrange key offset value
- 说明:用value覆盖(替换)key的存储的值从offset开始,不存在的key做空白字符串。
- 返回值:修改后的字符串的长度
4.mset
- 语法:
mset key value
- 说明: 同时设置一个或多个key-value 对
- 返回值:ok
5.mget
- 语法:
mget key[key...]
- 作用:获取所有(一个或多个)给定key的值
- 返回值:包含所有key的列表
5.2 哈希类型hash
- redis hash 是一个string类型的filed和value的映射表,hash特别适合用于存储对象。
5.2.1 基本命令
1.hset
-
语法:
hset hash 表的 key field value
-
作用:将哈希表key中的域field的值设为value,如果key不存在,则新建hash表,进行赋值,如果有field,则覆盖值。
-
返回值:
- 如果field是hash表中心field,且设置值成功,返回1
- 如果field已经存在,旧值覆盖新值,返回0
2.hget
-
语法:
hget key field
-
作用:获取哈希表key中给定域field的值
-
返回值:field域的值,如果key不存在或者field不存在返回nil
3.hmset
- 语法:
hmset key field value[field value...]
- 说明:同时将多个field-value(域-值)设置到哈希表key中,此命令会覆盖已经存在的field,hash表key不存在,创建空的hash表,执行hmset.
- 返回值:设置成功返回ok,如果失败繁殖一个错误
4.hmget
- 语法:
hmset key field value[field value...]
- 说明:同时将多个field-value(域-值)设置到哈希表key中,此命令会覆盖已经存在的field,hash表key不存在,创建空的hash表,执行hmset.
- 返回值:设置成功返回ok,如果失败返回一个错误
5.hgetall
- 语法:
hgetall key
- 作用:获取哈希表key中所有的域和值
- 返回值:以列表形式返回hash中域和域的值,key不存在,返回空hash
6.hdel
- 语法:
hdel key field[field...]
- 作用:删除哈希表key中的一个或多个指定域field,不存在filed直接忽略
- 返回值:成功删除的field的数量
5.2.2 常用命令
1.hkeys
- 语法:
hkeys key
- 作用:查看哈希表key中所有的field域
- 返回值:包含所有的field的别表,key不存在返回空列表
2.hvals
- 语法:
hvals key
- 作用:返回哈希表中的所有域的值
- 返回值:包含哈希表所有域值的列表,key不存在返回空列表
3.hexists
- 语法:
hexists key field
- 作用:查看哈希表key中,给定域field是否存在
- 返回值:如果field存在,返回1,其他返回0
5.3 列表类型list
- redis列表是最简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。从左往右开始的命令一般是
l
开头的;从右往左的命令一般是r
开头的。
5.3.1 基本命令
1.Ipush
- 语法:
ipush key value[value...]
- 作用:将一个或多个值value插入到列表key的表头(最左边),从左边开始加入值,从左到右的顺序依次插入到表头
- 返回值:数字,新列表的长度
2.rpush
- 语法:
repush key value[value...]
- 作用:将一个或多个值value插入到列表key的表尾(最右边),各个value值按从左到右的顺序依次插入到表尾
- 返回值:数字,新列表的长度
3.lrange
- 语法:
lrange key start stop
- 作用:获取列表key中指定区间内的元素,0表示列表的第一个元素,以1表示列表的第二个元素;start ,stop是列表的下标值,也可以负数的下标,-1表示列表的最后一个元素,-2表示列表的倒数第二个元素,以此类推。start,stop超出列表的范围不会出现错误。
- 返回值:指定区间的列表
4.lindex
- 语法:
lindex key index
- 作用:获取列表key中国下标为指定index的元素,列表元素不删除,只是查询。0表示列表元素的第一个元素,以1表示列表的第二个元素;start,stop是列表的下标值,也可以负数的下标,-1表示列表的最后一个元素,-2表示列表的倒数第二个元素,以此类推。
5.llen
- 语法:
llen key
- 作用:获取列表key的长度
- 返回值:数值,列表的长度;key不存在返回0
5.3.2 常用命令
1.lrem
- 语法:
lrem key count value
- 作用:根据参数count的值,移除列表中与参数value相等的元素,count>0,从列表的左侧向右开始移除;count<0从列表的尾部开始移除;count=0移除表中所有的域value相等的值
- 返回值:数值,移除的元素个数
2.lset
- 语法:
lset key index value
- 作用:将列表key下标为index的元素的值设置为value
- 返回值:设置成功返回ok;key不存在或者index超出范围返回错误信息
3.linsert
- 语法:
linsert key BEFORE|ALFTER pivot value
- 作用:将值value插入到列表key当中位于值pivot之前或之后的位置。key不存在,pivot不在列表中,不执行任何操作
- 返回值:命令执行成功,返回新列表的长度。没有找到pivot返回-1,key不存在返回0
5.4 集合类型set
- redis的Set是string类型的无序集合,集合成员是唯一的,即集合中不能出现重复的数据
5.4.1基本命令
1.sadd
- 语法:
sadd key memeber[member...]
- 作用:将一个或多个memeber元素加入到集合key当中,已经存在于集合的memeber元素将被忽略,不会再加入
- 返回值:加入到集合的新元素的个数。不包括被忽略的元素
2.smembers
- 语法:
smembers key
- 作用:获取集合key中的所有成员元素,不存在的key视为空集合
3.sismember
- 语法:
sismember key memeber
- 作用:判断member元素是否是集合key的成员
- 返回值:member是集合成员返回1,其他返回0
4.scard
- 语法:
scard key
- 作用:获取集合里面的元素个数
- 返回值:数字,key的元素个数。其他情况返回0。
5.srem
- 语法:
srem key member[member...]
- 作用:删除集合key中的一个或者多个member元素,不存在的元素被忽略
- 返回值:数字,成功删除的元素个数,不包括被忽略的元素。
5.4.2常用命令
1.srandmember
- 语法:
srandmember key[count]
- 作用:只提供key,随机返回集合中的一个元素,元素不删除,依然在集合中;提供了count时,count为整数,返回包含count个数元素的集合,集合元素各不相同。count是负数,返回一个count绝对值的长度的集合,集合中元素可能会重复多次。
- 返回值:一个元素;多个元素的集合
2.spop
- 语法:
spop key [count]
- 作用:随机从集合在中删除一个元素,count是删除的元素个数
- 返回值:被删除的元素,key不存在或空集返回nil
5.5 有序集合类型zset
- zset是一个经过排序的set集合。redis有序集和zset和集合set一样也是string类型元素的集合,且不允许重复的成员。不同的是zset的每一个元素都会关联一个分数,redis通过分数来为集合中的成员进行从小到大的排序。
5.5.1基本命令
1.zadd
- 语法:
zadd key score member[score member...]
- 作用:将一个或多个member元素及其score值加入到有序集合key中,如果member存在集合中,则更新值;score可以是整数或浮点数
- 返回值:数字,新添加的元素个数
2.zrange
- 语法:
zrange key start stop [WITHSCORES]
- 作用:查询有序集合,指定区间的内的元素。集合成员按score值从小到大来排序。start和stop都是从0开始。0是第一个元素,1是第二个元素,以此类推。以-1表示最后一个成员,-2表示倒数第二个成员。WITHSCORES选项让score和value一同返回。
- 返回值:自定区间的成员集合
3.zrevrange
- 语法:
zrevange key start stop [WITHSCORES]
- 作用:返回有序集key中,指定区间内的成员。其中成员的位置按score值递减(从大到小)来排列。其他同zrange命令。
- 返回值:自定区间的成员集合
4.zrem
- 语法:
zrem key member [member...]
- 作用:删除有序集合key中的一个或者多个成员,不存在的成员被忽略
- 返回值:别成功删除的成员数量,不包括被忽略的成员
5.zcard
- 语法:
zcard key
- 作用:获取有序集key的元素成员的个数
- 返回值:key存在返回集合元素的个数,key不存在,返回0
5.5.2常用命令
1.zrangebyscore
- 语法:
zrangebyscore key min max [WITHSCORES][LIMIT offset count]
- 作用:获取有序集key中,所有score值介于min和max之间(包括min和max)的成员,有序成员是按递增(从小到大)排序。
- min,max是包括在内,使用符号
(
表示不包括。min,max可以使用-inf,+inf表示最小和最大 - limit用来限制返回结果的数量和区间
- withscore显示score和value
- min,max是包括在内,使用符号
- 返回值:指定区间的集合数据
2.zrevrangebyscore
- 语法:
zrevrangebyscore key max min [WITHSCORES][LIMIT offset count]
- 作用:返回有序集key中,score值介于max和min之间(默认包括等于max或者min)的所有的成员。有序集成员按score值递减(从大到小)的次序排列。
3.zcount
- 语法:
zcount key min max
- 作用:返回有序集key中,score值在min和max之间(默认包括score值等于min或max的成员数量)
6.高级话题
6.1 Redis事务
- 事务是指一系列的操作步骤,这一系列的操作步骤,要么完全地执行,要么完全的不执行。Redis中的事务(transaction)是一组命令的集合,至少是两个或两个以上的命令,redis事务保证这些命令被执行时中间不会被任何其他操作打断。
6.1.1事务操作的命令
1.multi
- 语法:multi
- 作用:标记一个事物的开始。事务内的多条命令会按照先后顺序被放进一个队列当中。
- 返回值:总是返回ok
2.exec
-
语法:exec
-
作用:执行所有事务块内的命令
-
返回值:事务内的所有执行语句内容,事务被打断(影响)返回nil
3.discard
- 语法:discard
- 作用:取消事务,放弃执行事务块内的所有命令
- 返回值:总是返回ok
4.watch
- 语法:
watch key[key...]
- 作用:监视一个(或多个)key,如果在事务执行之前这个(或这些)key被其他命令所改动过,那么事务将被打断
- 返回值:总是返回ok
5.unwatch
- 语法:
unwatch
- 作用:取消WATCH命令对所有key的监视。如果在执行WATCH命令之后,EXEC命令或DISCARD命令先被执行了的话,那么就不需要再执行UNWATCH了
- 返回值:总是返回ok
6.1.2事务的实现
1.正常执行事务
- 事务执行的步骤:首先开启事务,其次向事务队列中加入命令,最后执行事务提交
- 例子:事务的执行:
- 1)multi:用multi命令告诉Redis,接下来要执行的命令你先不要执行,而是把它们暂时存起来(开启事务)
- 2)
sadd works john
第一条命令进入等待队列(命令入队) - 3)
sadd works rose
第二条命令进入等待队列(命令入队) - 4)
exce
告知redis执行前面发送的两条命令(提交事务)
2.事务执行exec之前,入队命令错误(语法错误;严重错误导致服务器不能正常工作(例如内存不足)),放弃事务
- 执行事务步骤:
MULTI
正常命令SER key value
正常命令INCR
命令语法错误EXEC
无法执行事务,那么第一条正确的命令也不会执行,所以key的值不会设置成功
3.事务执行exec命令后,执行队列命令,命令执行错误,事务提交
-
执行步骤:
- 1)
MULTI
正常命令 - 2)
SET username zhangsan
正常命令 - 3)
lpop username
正常命令,语法没有错误,执行命令时才会有错误 - 4)
EXEC
正常执行,发现错误可以在事务提交前放弃事务,执行discard
- 1)
4.放弃事务
-
执行步骤
- 1)
MULTI
开启事务 - 2)
SET age 25
命令入队 - 3)
SET age 30
命令入队 - 4)
DISCARD
放弃事务,则命令队列不会被执行
- 1)
5.Redis的watch机制
1. Redis的WATCH机制
- WATCH机制原理:
- WATCH机制:使用WATCH监视一个或多个key,跟踪key的value修改情况,如果有key的value值在事务EXEC执行之前被修改了,整个事务被取消。EXEC返回提示信息,表示事务已经失败。
- WATCH机制使的事务EXEC变的有条件,事务只有在被WATCH的key没有修改的前提下才能执行。不满足条件,事务被取消。使用WATCH监视了一个带过期时间的键,那么及时这个键过期了,事务仍然可以正常执行
- 大多数情况下,不同的客户端会访问不同的键,相互同时竞争同一key的情况一般都很少,乐观锁能够以很好的性能解决数据冲突的问题
2.WATCH的事例
- 执行步骤:
- 首先启动redis-server,在开启两个客户端连接,分别叫A客户端和B客户端
- 1)在A客户端设置key:str.lp登录人数为10
- 2)在A客户端监视key:str.lp
-
- 在A客户端开启事务 multi
-
- 在A客户端修改 str.lp的值为11
- 5) 在B客户端修改str.lp的值为15
- 6) 在A客户端执行事务exec
-
- 在A客户端查看str.lp值,A客户端执行的事务没有提交,因为WATCH的str.lp的值已经被修改了,所以放弃事务
6.2 持久化
- 持久化可以理解为存储,就是讲数据存储到一个不会丢失的地方,如果把数据放在内存中,电脑关闭或重启数据就会丢失,所以放在内存中的数据不是持久化的,而放在磁盘就算是一种持久化。
- Redis的数据存储在内存中,内存是瞬时的,如果linux宕机或重启,又或者Redis崩溃或重启,所有的内存数据都会丢失,为解决这个问题,Redis提供两种机制对数据进行持久化存储,便于发生故障后能迅速恢复数据
6.2.1 持久化方式
1.RDB方式
-
Redis Database(RDB)就是在指定的时间间隔内将内存中的数据集快照写入磁盘,数据恢复是将快照直接再读到内存中。
-
实现方式:
-
RDB的方式是数据持久化,仅需要在redis.conf文件处配置既可。默认配置是启用的。
-
在配置文件reids.conf搜索SNAPSHOTTING,查找在注释开始和结束之间的关于RDB的配置说明。配置SNAPSHOTTING地方有三处。
-
①:配置执行RDB生成快照文件的时间策略。
-
对Redis进行设置,让它在“N秒内数据集至少有M个key改动”这一条件被满足时,自动保存一次数据集。
-
配置格式:
save <seconds> <changes>
save 900 1
save 300 10
save 60 10000
-
②:dbfilename:设置RDB的文件名,默认文件名为dump.rdb
-
③:dir:指定RDB文件的存储位置,默认是 ./ 当前目录
-
-
配置步骤:
- ①:查看:
ps -ef | grep redis
,如果redis服务启动,先停止。 - ②:修改redis.conf文件,修改前先备份,执行
cp redis.conf bak_redis.conf
- ①:查看:
-
优点:由于存储的是数据快照文件,恢复数据很方便,也比较快
缺点:
1.会丢失最后一次快照以后更改的数据。
2.由于需要经常操作磁盘,RDB会分出一个子进程。如果你的redis数据库很大的话,子进程占用比较多的时间,并且可能会影响Redis暂停服务一段时间(millisecond级别),如果你的数据库超级大并且你的服务器CPU比较弱,有可能会达到一秒。
2.AOF方式
-
Append-only File(AOF),Redis每次接受到一条改变数据的命令时,它将把该命令写到一个AOF文件中(只记录写操作,读操作不记录),当重启Redis时,它通过执行AOF文件中所有的命令来恢复数据。
-
如何实现
AOF方式的数据持久化,仅需在redis.conf文件中配置即可-
配置项
-
appendonly:默认是no,改成yes即开启了aof持久化
-
appendfilename:指定AOF文件名,默认文件名为appendonly.aof
-
dir:指定RDB和AOF文件存放的目录,默认是 ./
-
appendfsync:配置项aof文件写命令数据的策略:
no:不主动进行同步操作,而是完全交由系统来做(即每30秒一次),比较快但不是很安全。
always:每次执行写入都会执行同步,慢一些但是比较安全。
everysec:每次执行一次同步操作,比较平衡,介于速度和安全之间。这是默认项。
-
auto-aof-rewrite-min-size:允许重写的最小AOF文件大小,默认是64M。当aof文件大于64M时,开始整理aof文件,去掉无用的操作命令。缩小aof文件。
-
-
执行完数据的修改操作后,可以看到生成的aof文件
6.3.主从复制
- 通过持久化功能,Redis保证了及时在服务器重启的情况下也不会丢失(或少量丢失)数据,但是由于数据是存储在一台服务器上的,如果这台服务器出现故障,也会导致数据丢失。
- 为了避免单点故障,我们需要将数据复制多份部署在多台不同的服务器上,及时有一台服务器出现故障其他服务器依然可以继续提供服务
6.3.1 主从复制—读写分离
master为主服务器,可以读可以写,主要负责写;slave为从服务器,只能进行读
1.Redis主从复制的实现
方式1:修改配置文件,启动时,服务器读取配置文件,并自动生成指定服务的从服务器,从而构成主从复制的关系
方式2: ./redis-server --slaveof <master-ip> <master-port>
在启动redis时指定当前服务器成为某个主从Redis服务的从Slave
例如:想要搭建如下的主从服务器结构
- 先将redis服务器关闭,然后为三个服务器创建各自的配置文件
-
对三个配置文件分别进行编辑
-
主redis的配置,redis6380.conf
include /usr/local/redis-stable/redis.conf
daemonize yes
port 6380
pidfile /var/run/redis_6380.pid
logfile 6380.log
dbfilename dump6380.rdb
-
修改从服务器6382Slave的配置文件 redis6382.conf
include /usr/local/redis-stable/redis.conf daemonize yes port 6382 pidfile /var/run/redis_6382.pid logfile 6382.log dbfilename dump6382.rdb slaveof 127.0.0.1 6380
-
修改从服务器6384Slave的配置文件 redis6384.conf
include /usr/local/redis-stable/redis.conf daemonize yes port 6384 pidfile /var/run/redis_6384.pid logfile 6384.log dbfilename dump6384.rdb slaveof 127.0.0.1 6380
-
修改完成后,启动服务器,此时需要将三个都进行启动
- 可通过命令查看信息
-
在第二个终端中打开第二个6382服务
-
打开第三个终端,打开6384服务
-
此时可以在主服务其中进行读写操作,从服务器信息是同步的
主服务器
6382
6384
2.容灾处理
当Master服务出现故障,需手动将slave中的一个提升为master,剩下的slave挂至新的master上(冷处理:机器挂掉了,再处理)
命令:
①:slaveof no one
将一台slave服务器提升为Master(提升某slave为master)
②:slaveof 127.0.0.1 6384
(将slave挂至新的master上)
- 将Master:6380停止
- 选择一个Salve升到Master,将其他的Slave挂在到新提升的Master
- 将其他Salve挂到新的Master
- 原来的服务器重新添加到主从结构(假设原来的6380服务器已经修好)
- 查看新的Master信息
6.3.2 高可用Sentinel哨兵
-
Sentinel哨兵可以用来监控多个Redis服务实例的运行情况。Redis Sentinel 是一个运行在特殊模式下的Redis服务器。Redis Sentinel是在多个Sentinel进程环境下互相协作工作的。哨兵数量必须为多个,而且必须为奇数
-
Sentinel系统有三个主要任务
- 监控:Sentinel不断的检查主服务和从服务器是否按照预期正常工作。
- 提醒:被监控的Redis问题出现时,Sentinel会通知管理员或其他应用程序。
- 自动故障转移:监控的主Redis不能正常工作,Sentinel会开始进行故障迁移操作。将一个从服务器升级到新的主服务器。让其他从服务器挂到新的主服务器。同时向客户端提供新的主服务器地址。
1.Sentinel配置
- 复制三分sentinel.conf文件
-
修改哨兵的配置文件
-
1.修改哨兵的运行端口号
-
2.修改主服务器端口号为6384,并且投票数为2,因为有三个哨兵
- 3.同样的方式修改其他两个哨兵的配置文件
6382哨兵的文件配置:
6384哨兵的配置:
port 26384 以及 sentinel monitor mymaster 127.0.0.1 6384 2
-
2.启动哨兵
-
在三个不同的新的终端分别执行三条语句,打开三个哨兵
./redis-sentinel ../sentinel26380.conf 第一个哨兵 ./redis-sentinel ../sentinel26382.conf 第二个哨兵 ./redis-sentinel ../sentinel26384.conf 第三个哨兵
3.关闭主服务器,制造故障
- 此时可以接收到哨兵传来的信息
12197:X 13 Jan 2021 23:11:47.643 # +switch-master mymaster 127.0.0.1 6384 127.0.0.1 6380
12197:X 13 Jan 2021 23:11:47.643 * +slave slave 127.0.0.1:6382 127.0.0.1 6382 @ mymaster 127.0.0.1 6380
12197:X 13 Jan 2021 23:11:47.643 * +slave slave 127.0.0.1:6384 127.0.0.1 6384 @ mymaster 127.0.0.1 6380
12197:X 13 Jan 2021 23:12:17.647 # +sdown slave 127.0.0.1:6384 127.0.0.1 6384 @ mymaster 127.0.0.1 6380
- 此时6380服务器成为了主服务器
4.重新启动6384服务器
- 假如此时主服务器修好了,重新启动6384
- 此时哨兵将收到信息
+sdown slave 127.0.0.1:6384 127.0.0.1 6384 @ mymaster 127.0.0.1 6380
将6384重新挂载到6380上。
此时的6384状态为
6.4安全设置
6.4.1 设置密码
- 设置Redis的访问密码,修改redis.conf中requirepass密码。
- 开启访问密码设置
修改redis.conf,使用vim命令。找到requirepass行去掉注释,requirepass空格后就是密码
保存退出。
2.再次打开redis时,需要密码
./redis-cli -a 123456
或者
6.4.2 绑定ip
- 修改redis.conf文件,把
#bind 127.0.0.1
前面的注释#去掉,然后把127.0.0.1改成允许访问你redis服务器的ip地址,表示只允许该ip进行访问。多个ip使用空格分隔。
6.4.3 修改默认端口号
- 修改redis的端口,在redif.conf文件中修改port6379将其修改为自己指定的端口(可随意),端口1024是保留给操作系统使用的。用户可以使用的范围是1024-65535
- 使用
./redis-cli -p 新设置端口
来指定端口号