概述
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Redis官网:https://redis.io/
Redis下载地址:https://download.redis.io/releases/
Redis部署
版本:Redis 6.2.8
本地部署
下载安装包
wget https://download.redis.io/releases/redis-6.2.8.tar.gz
创建部署目录
mkdir -p /data/redis/{src,data,logs,etc,bin}
安装依赖
yum -y install gcc gcc-c++
安装
tar zxf redis-6.2.8.tar.gz -C /data/redis/src
cd /data/redis/src/redis-6.2.8/
make
cd /data/redis/src/redis-6.2.8/src
make install
复制配置文件
cp /data/redis/src/redis-6.2.8/redis.conf /data/redis/etc/
cp /data/redis/src/redis-6.2.8/sentinel.conf /data/redis/etc/
复制启动程序
cd /data/redis/src/redis-6.2.8/src
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server redis-sentinel /data/redis/bin
设置环境变量
echo "export PATH=$PATH:/data/redis/bin" >> /etc/profile
source /etc/profile
修改配置文件
修改配置文件中以下几项,其他配置按照需求修改
vim /data/redis/etc/redis.cof
bind 0.0.0.0 #允许访问的主机0.0.0.0为允许所有也可设置为某台主机
port 6379 #监听端口
protected-mode no #是否开启保护模式,默认开启。要是配置里没有指定bind和密码。开启该参数后,redis只会本地进行访问,拒绝外部访问。要是开启了密码和bind,可以开启。否则最好关闭设置为no。
daemonize yes #已守护进程运行
logfile /data/redis/logs/redis.log #日志位置
requirepass Pwd@123 #设置redis密码
dir /data/redis/data #数据目录位置
databases 16 #数据库数量(默认不修改)
appendonly yes #开启数据持久化(根据需求开启)
maxmemory 3221225472 #设置最大内存限制(bytes)
#(内存算法:1Byte(字节) = 8bit(位),1KB = 1024Byte(字节),1MB = 1024KB,1GB = 1024MB,1TB = 1024GB)
启动程序
redis-server /data/redis/etc/redis.conf
停止程序
kill -9 `ps -ef |grep redis-server |grep -v grep| awk '{print $2}'`
查看程序进程
ps -ef |grep redis-server
查看服务信息
redis-cli -a Pwd@123 info
容器部署
docker_run
创建部署目录
mkdir /data/redis/{data,log,etc}
chmod 777 -R /data/redis/log
编辑配置文件
vim /data/redis/etc/redis.conf
bind 0.0.0.0
port 6379
protected-mode no
logfile /log/redis.log
requirepass Pwd@123
dir /data/
appendonly yes
maxmemory 3221225472
启动容器
docker run -d --name redis -v /data/redis/etc/redis.conf:/etc/redis.conf -v /data/redis/data/:/data -v /data/redis/log/:/log/ redis:6.2.8 redis-server /etc/redis.conf
查看服务信息
docker exec -it redis redis-cli -a Pwd@123 info
docker-compose
创建部署目录
mkdir /data/redis/{data,log,etc}
chmod 777 -R /data/redis/log
编辑配置文件
vim /data/redis/etc/redis.conf
bind 0.0.0.0
port 6379
protected-mode no
logfile /log/redis.log
requirepass Pwd@123
dir /data/
appendonly yes
maxmemory 3221225472
创建yml文件
vim /data/redis/docker-compose-redis.yml
version: '3'
services:
redis:
image: redis:6.2.8
container_name: redis
restart: always
volumes:
- /data/redis/etc/redis.conf:/etc/redis.conf
- /data/redis/data:/data
- /data/redis/log:/log
environment:
TZ: Asia/Shanghai
command: [
"bash", "-c",
'
docker-entrypoint.sh
/etc/redis.conf
'
]
ports:
- 6379:6379
启动容器
docker-compose -f /data/redis/docker-compose-redis.yml up -d
查看服务信息
docker exec -it redis redis-cli -a Pwd@123 info
基础命令
查看当前数据库中所有的key
keys *
键总数
dbsize
检查键是否存在
exists key
设置键
set key value
-- key必须不存在,才能设置成功,用于添加
setnx key value
-- key必须存在,才能设置成功,用于更新
set key value xx
--批量设置
mset key1 value1 key2 value2
例:
set age 23 ex 10
setnx name test
set age 25 xx
获取键
get key
--单个获取
mget key1 key2
--批量获取
例:
批量设值:mset country china city beijing
批量获取:mget country city address
删除键
del key [key …]
键过期
expire key seconds
获取键的有效时长
ttl key
移除键的过期时间
persist key
键的数据结构类型
type key
随机返回数据库中一个键
randomkey
重命名
rename keyold keynew
当key2不存在时,key1重命名
renamex key1 key2