Linux安装Redis

  • A+
所属分类:Redis

Redis是一个开源的、高性能的键值对存储系统,通常被用作数据库、缓存和消息代理。它支持多种类型的数据结构,如字符串、散列、列表、集合、有序集合等

主要特点
高性能:Redis以内存为主存,读写迅速。支持异步持久化,后台硬盘存储,前台操作无影响;
数据结构丰富:不仅键值对,还支持列表、集合、有序集合及地理空间索引查询等复杂结构;
持久化能力:作为内存数据库,提供持久化选项,可硬盘保存数据,防数据丢失;
高可用性:实现主从复制,确保数据高可用。提供哨兵与集群模式,自动故障转移及分布式存储;
事务支持:具备事务功能,确保命令序列原子性执行,维护数据一致性;
发布/订阅:内置发布/订阅机制,适用于消息队列、实时消息推送等应用场景;
Lua脚本执行:支持Lua脚本,服务器端直接执行复杂操作,减少网络往返通信;
使用简便:提供多语言客户端库,如Python、Java、C++等,方便开发者集成使用;
应用广泛:凭借高性能与多功能,广泛应用于缓存、会话、排行榜、消息队列、分布式锁等场景。

安装Redis

安装Redis依赖

yum -y install openssl-devel

下载Redis包

wget https://download.redis.io/releases/redis-7.0.15.tar.gz

解压

tar xvf redis-7.0.15.tar.gz

进入解压后的目录

cd redis-7.0.15/

编译Redis

make BUILD_TLS=yes

安装Redis

make install PREFIX=/usr/local/redis-7.0.15

建立软连接

ln -s /usr/local/redis-7.0.15/ /usr/local/redis

创建配置文件目录,把配置文件复制过去

mkdir -p /usr/local/redis/etc
cp redis.conf /usr/local/redis/etc/

修改配置文件

vim /usr/local/redis/etc/redis.conf
bind 0.0.0.0        //允许所有IP连接
protected-mode yes        //启用保护模式,限制未认证的访问
port 6379        //监听端口6379
daemonize yes        //以守护进程运行
pidfile /usr/local/redis/run/redis_6379.pid        //进程ID文件位置
logfile "/usr/local/redis/logs/redis.log"        //日志文件路径
databases 16        //设置16个数据库
save 3600 1 300 100 60 10000        //快照保存条件
dbfilename dump.rdb        //快照文件名
dir /data/redis        //数据存储目录
requirepass xxx.com        //设置密码为xxx.com
appendonly yes        //开启AOF持久化
appendfilename "appendonly.aof"        //AOF文件名
appenddirname "appendonlydir"        //AOF文件目录
appendfsync everysec        //每秒同步AOF文件

创建数据目录,运行文件和日志文件目录

mkdir -p /data/redis
mkdir -p /usr/local/redis/{run,logs}

创建用户并授权

useradd -s /sbin/nologin -M redis
chown -R redis:redis /usr/local/redis*
chown -R redis:redis /data/redis/

配置开机自启动文件

vim /usr/lib/systemd/system/redis.service
[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
PIDFile=/usr/local/redis/run/redis_6379.pid
Restart=always
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755

[Install]
WantedBy=multi-user.target

开机自启并启动Redis

systemctl daemon-reload
systemctl enable --now redis.service

登录Redis

/usr/local/redis/bin/redis-cli -h localhost -p 6379
localhost:6379> AUTH xxx.com
OK
localhost:6379> INFO
Linux安装Redis

Redis常用命令

字符串(Strings)

SET xxx "username"        //设置键'xxx'的值为'username'
GET xxx        //获取键'xxx'的值
INCR xxx:visits        //将键'xxx:visits'的值增加1
APPEND xxx "_jr"        //在键'xxx'的值后追加字符串'_jr'

哈希(Hashes)

HSET xxx username "name-A"        //设置哈希表'xxx'中的字段'username'为'name-A'
HGET xxx username        //获取哈希表'xxx'中的字段'username'的值
HGETALL xxx        //获取哈希表'xxx'中的所有字段和值
HINCRBY xxx visits 1        //将哈希表'xxx'中的字段'visits'的值增加1
HSETNX xxxx newfield "value"        //增加哈希表'xxx'中的字段'value'
HDEL xxx username        //删除哈希表'xxx'中的字段'username'

列表(Lists)

LPUSH xxx:tasks "task_1"        //将值'task_1'插入到列表'xxx:tasks'的头部
RPUSH xxx:tasks "task_2"        //将值'task_2'插入到列表'xxx:tasks'的尾部
LRANGE xxx:tasks 0 -1        //获取列表'user:1000:tasks'中的所有元素
LPOP xxx:tasks        //移除并获取列表'xxx:tasks'的第一个元素

集合(Sets)

SADD xxx:interests "music"        //向集合'xxx:interests'添加元素'music'
SADD xxx:interests "sports"        //向集合'xxx:interests'添加元素'sports'
SMEMBERS xxx:interests        //获取集合'xxx:interests'中的所有元素
SREM xxx:interests "music"        //从集合'xxx:interests'中移除元素'music'

有序集合(Sorted Sets)

ZADD xxx:scores 90 "math"        //向有序集合'xxx:scores'添加成员'math',分数为90
ZADD xxx:scores 85 "english"        //向有序集合'xxx:scores'添加成员'english',分数为85
ZRANGE xxx:scores 0 -1 WITHSCORES        //取有序集合'xxx:scores'中的所有成员和分数
ZREM xxx:scores "math"        //从有序集合'xxx:scores'中移除成员'math'

键(Keys)

KEYS user:*        //查找所有以'user:'开头的键
DEL user:1000:tasks        //删除键'user:1000:tasks'
EXISTS user:1000        //检查键'user:1000'是否存在
EXPIRE user:1000 3600        //设置键'user:1000'的过期时间为3600秒
TTL user:1000        //获取键'user:1000'的剩余过期时间
xxx