linuxredis启动脚本
Ⅰ 在Redis中如何使用Lua脚本
Lua脚本在Redis中的应用主要分为两种方式:eval和evalsha。其中,eval提供了一种灵活的方法来为Lua脚本提供额外的参数。使用 eval 命令,你可以指定 key 列表和参数列表,来执行Lua脚本。例如,当使用如下的 Lua 脚本来发送 "hello" 和一个值作为参数时,最终的返回结果将是 "hello redisworld"。如果Lua脚本较长,还可以通过在redis-cli中直接执行文件的方式执行脚本,这种方式不需要指定key的数量,只需使用逗号分隔key和参数,并注意逗号前后空格的正确放置。
另外,evalsha命令的使用也颇具特色。首先,你需要将Lua脚本加载到Redis服务端并获取其SHA1校验和,然后使用SHA1值执行对应的Lua脚本。这样做的好处是避免了每次执行脚本时的开销,因为脚本常驻于服务器端,使得功能复用变得可能。
在实际操作中,Lua脚本的RedisAPI提供了方便的功能,如redis.call和redis.pcall函数,用于调用Redis操作。redis.call函数执行失败时将停止脚本执行并返回错误,而redis.pcall则忽略错误继续执行,选择哪个函数使用应根据具体场景来决定。在获取key和value时,可以通过 KEYS[1] 和 ARGV[1] 来实现。
开发过程中,Lua脚本的日志输出可以使用redis.log函数实现,但需控制日志级别,以免影响性能。Redis 3.2新增的Lua Script Debugger功能则为复杂脚本的调试提供了便利。
在Spring Boot中集成Lua脚本,你可以通过RedisTemplate接口实现。为避免序列化问题,确保指定了正确的序列化方式。将Lua脚本放在指定目录下,并利用RedisScript类的getSha1()方法获取脚本摘要,随后通过指定方法调用脚本。
尽管Lua脚本功能强大,但需注意其执行可能会阻塞服务器,影响数据库响应,尤其是在分片场景下。因此,应谨慎使用并确保脚本执行的高效和安全性。
Ⅱ Redis安装说明
大多数企业基于Linux服务器部署项目,官方无Windows安装包,故文档基于Linux系统指导Redis安装。
选Linux版本CentOS 7。
Redis官网: redis.io/
单机安装Redis
1.1 安装Redis依赖
Redis基于C语言编写,安装前需装GCC依赖。
将安装包上传至任意Linux目录,如:/usr/upload/,解压安装包。
解压后,进入redis目录,运行编译命令。若无错误,安装完成。
1.3 启动
Redis启动方式多样:
- 1.3.1 默认启动: 运行bin/redis-server,以前端模式启动,窗口关闭即停止。
- 1.3.2 指定配置启动: 修改配置文件redis.conf,启动Redis,使用后台方式。
常用Redis配置如下:
启动服务,停止服务。
Redis客户端
指定主机和端口启动客户端,不指定也可。
客户端测试命令:
- set和get: 设置、获取数据。
- del: 删除指定key。
- keys *: 查看所有key。
- 清屏: 重置命令行界面。
Redis多数据库
一个Redis实例包含多个数据库,每个实例提供不同服务端口,数据库间互不影响。
实例最多16个数据库,客户端选择连接数据库。
连接指定数据库,查询数据。选择不存在数据库报错。
开机自启
配置实现开机自启。
新建系统服务文件,配置启动脚本,重载服务。
使用命令操作Redis,配置让其开机自启。
Ⅲ redis前端启动和后台启动的区别
Part I. 直接启动
下载
官网下载
安装
tar zxvf redis-2.8.9.tar.gz
cd redis-2.8.9
#直接make 编译
make
#可使用root用户执行`make install`,将可执行文件拷贝到/usr/local/bin目录下。这样就可以直接敲名字运行程序了。
make install
启动
#加上`&`号使redis以后台程序方式运行
./redis-server &
检测
#检测后台进程是否存在
ps -ef |grep redis
#检测6379端口是否在监听
netstat -lntp | grep 6379
#使用`redis-cli`客户端检测连接是否正常
./redis-cli
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set key "hello world"
OK
127.0.0.1:6379> get key
"hello world"
停止
#使用客户端
redis-cli shutdown
#因为Redis可以妥善处理SIGTERM信号,所以直接kill -9也是可以的
kill -9 PID
Part II. 通过指定配置文件启动
配置文件
可为redis服务启动指定配置文件,配置文件 redis.conf 在Redis根目录下。
#修改daemonize为yes,即默认以后台程序方式运行(还记得前面手动使用&号强制后台运行吗)。
daemonize no
#可修改默认监听端口
port 6379
#修改生成默认日志文件位置
logfile "/home/futeng/logs/redis.log"
#配置持久化文件存放位置
dir /home/futeng/data/redisData
启动时指定配置文件
redis-server ./redis.conf
#如果更改了端口,使用`redis-cli`客户端连接时,也需要指定端口,例如:
redis-cli -p 6380
其他启停同 直接启动 方式。配置文件是非常重要的配置工具,随着使用的逐渐深入将显得尤为重要,推荐在一开始就使用配置文件。
Part III. 使用Redis启动脚本设置开机自启动
启动脚本
推荐在生产环境中使用启动脚本方式启动redis服务。启动脚本 redis_init_script 位于位于Redis的 /utils/ 目录下。
#大致浏览下该启动脚本,发现redis习惯性用监听的端口名作为配置文件等命名,我们后面也遵循这个约定。
#redis服务器监听的端口
REDISPORT=6379
#服务端所处位置,在make install后默认存放与`/usr/local/bin/redis-server`,如果未make install则需要修改该路径,下同。
EXEC=/usr/local/bin/redis-server
#客户端位置
CLIEXEC=/usr/local/bin/redis-cli
#Redis的PID文件位置
PIDFILE=/var/run/redis_${REDISPORT}.pid
#配置文件位置,需要修改
CONF="/etc/redis/${REDISPORT}.conf"
配置环境
1. 根据启动脚本要求,将修改好的配置文件以端口为名复制一份到指定目录。需使用root用户。
mkdir /etc/redis
cp redis.conf /etc/redis/6379.conf
2. 将启动脚本复制到/etc/init.d目录下,本例将启动脚本命名为redisd(通常都以d结尾表示是后台自启动服务)。
cp redis_init_script /etc/init.d/redisd
3. 设置为开机自启动
此处直接配置开启自启动 chkconfig redisd on 将报错误: service redisd does not support chkconfig
参照 此篇文章 ,在启动脚本开头添加如下两行注释以修改其运行级别:
#!/bin/sh
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
#
再设置即可成功。
#设置为开机自启动服务器
chkconfig redisd on
#打开服务
service redisd start
#关闭服务
service redisd stop