在CentOS上安装和配置Redis的详细步骤
准备工作
1、添加EPEL仓库并更新yum源:
安装EPEL(Extra Packages for Enterprise Linux)仓库,以获取更多软件包。
sudo yum install epelrelease y
更新yum包索引:
sudo yum update y
2、安装Redis数据库:
使用yum命令安装Redis:
sudo yum install redis y
3、启动Redis服务:
启动Redis服务:
sudo systemctl start redis
设置开机自启:
sudo systemctl enable redis
4、允许远程连接:
修改Redis配置文件以允许远程连接:
sudo vi /etc/redis.conf
找到并注释掉以下行,以允许Redis被远程连接:
# bind 127.0.0.1
为了提高安全性,建议给Redis设置密码,找到并取消注释以下行,并将密码修改为你想要的密码:
# requirepass foobared requirepass your_password
保存并退出配置文件。
5、重启Redis服务:
重启Redis服务以应用更改:
sudo systemctl restart redis
常用Redis命令操作
1、连接Redis服务:
使用rediscli
客户端连接Redis服务:
rediscli p 6379 a your_password
2、选择操作第几个Redis数据库:
切换到指定数据库(如第1个数据库):
select 1
3、操作string类型的数据:
存取单条数据:
set key value # 设置键值对 get key # 获取键的值
存取多条数据:
mset key1 value1 key2 value2 # 批量设置键值对 mget key1 key2 # 批量获取键的值
4、操作hash类型数据:
存取单条数据:
hset key field value # 设置哈希表字段值 hget key field # 获取哈希表字段值
存取多条数据:
hmset key field1 value1 field2 value2 # 批量设置哈希表字段值 hmget key field1 field2 # 批量获取哈希表字段值 hgetall key # 获取哈希表所有字段和值
删除数据:
hdel key field1 field2 # 删除一个或多个哈希表字段
5、操作list类型数据:
左添加:先添加的数据会被后添加的数据挤到后面去。
lpush key value1 value2 # 在列表左边插入一个或多个值 lrange key 0 1 # 获取列表中指定范围的元素
右添加:先添加的数据会被后添加的数据挤到里面去。
rpush key value1 value2 # 在列表右边插入一个或多个值 lrange key 0 3 # 获取列表中指定范围的元素
查看数据长度/删除数据:
llen key # 获取列表长度 lrem key 1 value # 根据值删除一个或多个元素
List可以存储重复数据:
lpush key value1 value1 # 在列表左边插入一个或多个值,可重复
删除多条重复数据:从左往右顺序删除:
lrem key 2 value # 根据值从左到右删除指定次数的元素
6、操作set数据类型:
Set内部会有一个固定的排序,存入的数据与取出的数据顺序可能不同。
存入数据:
sadd key member1 member2 member3 # 添加一个或多个成员
查看数据:
smembers key # 返回集合中的所有成员
查看条数:
scard key # 返回集合的基数(即集合中元素的数量)
删除数据:
srem key member1 member2 # 移除一个或多个成员
7、操作sorted set数据类型:
Sorted set按我们自己的要求进行排序,set只能按它固定的顺序排序。
按顺序添加:
zadd key score1 member1 score2 member2 # 添加一个或多个成员,每个成员都会关联一个分数
查看数据:
zrange key 0 4 # 通过索引范围返回有序集成员,score从小到大排序
查看条数:
zcard key # 返回有序集的基数(即有序集中元素的数量)
删除数据:
zrem key member1 member2 # 移除一个或多个成员
8、通用命令:
按层级存储数据:
set cart:user01:item01 apple # 设置复杂键的键值对
设置key的失效时间(常用于验证码的失效时间):
set code test ex 10 # 表示10秒后失效,将查不到此数据,被系统默认删除(单位:秒) set code test px 1000 # 表示1000毫秒后失效(单位:毫秒)
查看生效时间:
ttl code # 如果值为1表示永不失效,如果值为2表示已失效,如果值为正数表示生效的剩余时间(单位:秒)
给未设置失效时间的数据添加失效时间:
expire code 10 # 前提是code这个值还存在(单位:秒)
参数xx与nx区别:xx表示当数据存在才能设置失效时间,数据不存在设置不了;nx表示当数据不存在时才能设置成功,数据存在设置不了。
通用删除命令:
del user # 确定要放弃本次机会?
Redis服务管理命令
1、启动Redis服务器:
sudo systemctl start redis.service
2、停止Redis服务器:
sudo systemctl stop redis.service
3、重新启动Redis服务器:
sudo systemctl restart redis.service
4、获取Redis服务器的运行状态:
sudo systemctl status redis.service
5、开机启动Redis服务器:
sudo systemctl enable redis.service
6、开机禁用Redis服务器:
sudo systemctl disable redis.service
FAQs常见问题解答
问题1:如何检查Redis是否正在运行?
答:可以通过以下命令检查Redis服务的状态:
sudo systemctl status redis.service
如果Redis正在运行,你会看到类似“active (running)”的状态信息,否则,会显示“inactive (dead)”或其他非运行状态的信息。
问题2:如何设置Redis密码以确保远程连接的安全性?
答:为了确保远程连接的安全性,可以在Redis配置文件中设置密码,具体步骤如下:
1、打开Redis配置文件:
sudo vi /etc/redis.conf
2、找到并取消注释以下行,并将密码修改为你想要的密码:
# requirepass foobared requirepass your_password
3、保存并退出配置文件,然后重启Redis服务以应用更改:
sudo systemctl restart redis.service