Redis 3.0 编译安装
admin
2023-06-07 11:41:12
0

官方主站:http://www.redis.io/

下载地址:http://www.redis.cn/download.html

Command API: http://www.redis.cn/commands.html
      Redis官方文档:http://redis.io/documentation

一.Redis 介绍:
Redis是Remote Dictionary Server的缩写。他本质上一个Key/Value数据库,与Memcached类似的NoSQL型数据库,但是他的数据可以持久化的保存在磁盘上,解决了服务重启后数据不丢失的问题,他的值可以是string(字符串)、list(列表)、sets(集合)或者是ordered sets(被排序的集合),所有的数据类型都具有push/pop、add/remove、执行服务端的并集、交集、两个sets集中的差别等等操作,这些操作都是具有原子性的,Redis还支持各种不同的排序能力。

二.Redis 部署
1.安装相关依赖包:
yum -y install gcc gcc-c++ cmake make

2.安装tcmalloc包[ 尝试采用新的内存分配方式 ]
Redis并没有自己实现内存池,没有在标准的系统内存分配器上再加上自己的东西。
所以系统内存分配器的性能及碎片率会对Redis造成一些性能上的影响。
在最新版本中,jemalloc已经作为源码包的一部分包含在源码包中,所以可以直接被使用。
如果要使用tcmalloc的话,是需要自己安装的。

tcmalloc是google-proftools( http://code.google.com/p/gperftools/downloads/list)中的一部分,
所以我们实际上需要安装google-proftools。如果你是在64位机器上进行安装,需要先安装其依赖的libunwind库,32位的系统不需要
下载地址: http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99-alpha.tar.gz

(1).安装libunwind
tar zxvf libunwind-0.99-alpha.tar.gz
cd libunwind-0.99-alpha/
CFLAGS=-fPIC ./configure
make CFLAGS=-fPIC
make CFLAGS=-fPIC install

(2).安装gperftools
tar zxvf gperftools-2.1.tar.gz
cd gperftools-2.1
./configure --disable-cpu-profiler --disable-heap-profiler --disable-heap-checker --disable-debugalloc --enable-minimal
make && make install
cd /usr/local/lib
ln -sv libtcmalloc_minimal.so.4.1.2 libtcmalloc.so
# 加粗部分如果不做的话,后面编译redis会报错: usr/bin/ld: cannot find ltcmalloc
echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf #如果没有这个文件,自己建一个
/sbin/ldconfig

3.Redis 安装:
tar zxvf redis-3.0.0.tar.gz
cd redis-3.0.0
mkdir -p /usr/local/redis-3.0
# make prefix= install
# 将redis安装在/bin下/usr/local/redis-3.0/bin下
# make PREFIX=/usr/local/redis-3.0 install # 此方式安装,使用linux默认的内存分配方式
make PREFIX=/usr/local/redis-3.0 USE_TCMALLOC=yes FORCE_LIBC_MALLOC=yes install

4.建相关目录,并配置redis.conf 文件[简单配置]
cd /usr/local/redis-3.0/
mkdir etc #存放配置文件,这里目录名,可建为:conf
mkdir log #存放日志和pid文件
mkdir data #存放数据
vim etc/redis.conf
daemonize yes
port 6379
pidfile /usr/local/redis-3.0/log/redis_6379.pid
dir /usr/local/redis-3.0/data
logfile /usr/local/redis-3.0/log/redis_6379.log

5.Redis服务启动、关闭
(1).启动服务:
/usr/local/redis-3.0/bin/redis-server /usr/local/redis-3.0/etc/redis.conf
注:
此命令仅有一个启动参数,指定目录下的配置文件,不加参数执行默认配置。
测试启动:
/usr/local/redis-3.0/bin/redis-cli ping
返回PONG,则启动成功。
查看端口是否被占用:
netstat -ntlp |grep 6379

(2).关闭服务:
/usr/local/redis-3.0/bin/redis-cli shutdown
如果非默认端口,可指定端口:
/usr/local/redis-3.0/bin/redis-cli -p 6380 shutdown

(3).验证redis内存分配方式是否在使用tcmalloc
lsof -n |grep tcmalloc
redis-ser 2754 root mem REG 253,0 1078467 1725996 /usr/local/lib/libtcmalloc_minimal.so.4.1.2

6.Redis 服务启动脚本
redis 本身提供了redis安装脚本:utils/install_server.sh
但 这个脚本包括安装服务,有点烦,我们直接取其安装脚本:
#!/bin/sh
#Configurations injected by install_server below....
EXEC=/usr/local/redis-3.0/bin/redis-server
CLIEXEC=/usr/local/redis-3.0/bin/redis-cli
PIDFILE=/usr/local/redis-3.0/log/redis_6379.pid
CONF="/usr/local/redis-3.0/etc/redis.conf"
REDISPORT="6379"

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
;;
status)
PID=$(cat $PIDFILE)
if [ ! -x /proc/${PID} ]
then
echo 'Redis is not running'
else
echo "Redis is running ($PID)"
fi
;;
restart)
$0 stop
$0 start
;;
*)
echo "Please use start, stop, restart or status as first argument"
;;
esac


相关内容

热门资讯

“用戒指套住你洗碗时沾满泡沫的... 近日,福建福州地铁4号线车厢内的一组宣传标语引起不少乘客注意。网友发布的图片显示,标语和插图内容多围...
对标Reddit,Meta悄然... IT之家 5 月 24 日消息,Meta 公司悄然推出一款名为“Forum(论坛)”的独立群组应用。...
广西人大成立人工智能联络小组 ... 南宁5月24日电 (陈秋霞)5月23日,广西壮族自治区人大常委会涉侨工作人大代表联系点人工智能联络小...
四川泸州行道树断裂砸伤3人,一... 5月23日上午,多位网友发布视频称,四川省泸州市江阳区北城街道忠山路三段附近,有行道树断裂倒地,经过...
我国科研团队成功研制智能透射电... 记者从中国科学院大连化学物理研究所获悉,近期该所科研团队成功研制出智能透射电子显微镜“原眼一号”,该...
伊朗革命卫队:伊武装力量保持“... △伊朗德黑兰(资料图)据伊朗方面24日消息,伊朗伊斯兰革命卫队总司令艾哈迈德·瓦希迪当日发表讲话说,...
武契奇抵京:这无疑是我政治生涯... 据央视新闻消息,塞尔维亚总统武契奇5月24日至28日对中国进行国事访问。24日中午,武契奇总统乘机抵...
泽连斯基:俄方发射了90枚导弹... 当地时间24日,乌克兰总统泽连斯基通过社交媒体发文表示,自当日凌晨起,乌克兰救援部门及相关应急部门已...
“都到这个关键时刻了,难道还要... 中国应急管理报消息,5月22日19时29分,沁源县山西通洲集团留神峪煤矿发生瓦斯爆炸事故。事故发生后...
分布式电推进协同控制大模型决策... 分布式电推进协同控制大模型决策系统已融合人工智能AI软件平台 北京华盛恒辉分布式电推进协同控制大模型...