本系列通过8小章内容,详细介绍下redis从入门到熟练使用所需要掌握的全部技能,包括安装和java客户端使用。源码分析后续会开一个专让的系列详细介绍。
本系列涉及的环境:mac os 11.6.5、jdk1.8、redis6.2.6。
安装
这里介绍mac下安装过程,前提是要先安装homebrew。linux则请先安装apt包管理工具。
brew install redis //默认安装最新版本
当包下载后会自动安装,默认安装在 /usr/local/Cellar/redis目录下,配置文件则存放在 /usr/local/etc/redis.conf中;安装后在bin目录下会有如下以个辅助应用程序,后面章节都会详细介绍,本节先了解一下即可,最常用的是server和cli这两个:
- redis-server:服务端命令工具包,用于启动服务;
- redis-cli:命令行客户端,一般会使用专门的UI客户端,但还是建议大家掌握这个客户端,对熟悉redis命令有帮助;
- redis-benchmark: 性能测试工具,用来模拟多客户端并发的情况,
- redis-check-aof:aof文件修复工具,多用于单机,分布式系统不太常用;
- redis-check-dump:RDB文件检查工具,多用于单机,分布式系统不太常用;
安装后可输入如下命令,验证下是否安装成功:
brew search redis
如果出现如下截图,则认为安装成功,红框内带对勾的表示当前系统安装的版本,未带对勾的表示可选版本:
启动/停止服务
一般有两种启动方式,通过brew启动或是通过自带的redis-server命令启动
通过brew启动
brew services start redis//启动服务,这种方式不太建议,因为控制台不用输出相应的日志
brew services stop redis //停止服务
通过redis-server启动(建议)
需要先进入到/usr/local/Cellar/redis/6.2.6/bin目录下
//默认启动方式,默认端口为6379(个人学习时,建议以这种方式启动即可)
./redis-server
//指定端口启动
./redis-server --port 6380
//指定自定义的配置文件启动,防止一些mac系统权限的问题
./redis-server /usr/local/etc/redis.conf
//启动时设置日志级别
./redis-server —loglevel warning //启动时指定配置参数
//查看命令帮助
./redis-server -h
/*===========停止服务-正常==========*/
./redis-cli shutdown
/*===========停止服务-强制==========*/
ps -ef | grep redis //查到redis的pid,然后用kill-9命令杀掉即可
kill -9 pid //这种方式是强制结束不能保证其数据全被缓存到硬盘上了
输入./redis-server命令后,显示如下界面(因非后台启动,所以关闭当前终端窗口会自动关闭redis,如果需后台启动可用nohup ./redis-server & )命令,但不会出现如下控制台窗口显示的内容:
客户端连接
需要先进入到/usr/local/Cellar/redis/6.2.6/bin目录下
//本地连接
./redis-cli
//退出连接,可在交互窗口中直接输入exit
127.0.0.1:6379>exit
//远程连接,命令格式【./redis-cli -h IP -p PORT】 ,比如:
./redis-cli -h 127.0.0.1 -p 6379
随系统自动启动
下面linux服务来源于网络,因笔者身边只有mac,所以没仔细验证,请读者自行验证。读者在练习时,不太推荐设置成系统自动启动,因为比较占内存,建议修改/Users/xxxx/.bash_profile文件(xxxx为当前系统的用户名),在文件最后添加以下行,以设置别名的方式设置成快捷键:
alias redis='/usr/local/Cellar/redis/6.2.6/bin/redis-server'
linux
- 复制脚本到/etc/init.d
- 建立文件夹:a、/etc/redis存放配置文件;b、/var/redis/端口号,存放持久化文件
- 复制配置文件到上述a文件夹中,修改以下参数:a、daemonize—以守护进程模式运行;b、pidfile(/var/run/redis_端口号.pid)-PID文件位置;c、port-端口号;d、dir(/var/redis/商品号)-持久化文件存放位置
- sudo update-rc.d redid_端口号 defaults 随系统启动或/etc/init.d/redis_端口号 start来手工启动
reis_init_script.sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
# 此文件最好以redis+port的方式命名
# 端口号
REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf"
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$CLIEXEC -p $REDISPORT shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
*)
echo "Please use start or stop as first argument"
;;
esac
macos
n-sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist