设为首页 收藏本站
查看: 909|回复: 0

[经验分享] linux环境下redis安装及配置

[复制链接]

尚未签到

发表于 2018-11-4 06:47:10 | 显示全部楼层 |阅读模式
  1.下载
  下载地址:http://www.redis.io/download
  选取当前最新版本3.2.1下载,上传到linux上,进行解压缩:
  [root@mongodb1 redis]# ls
  redis-3.2.1  redis-3.2.1.tar.gz
  2.编译安装
  进入redis-3.2.1目录下,运行make进行安装编译:
  [root@mongodb1 redis-3.2.1]# ls
  00-RELEASENOTES  BUGS  CONTRIBUTING  COPYING  deps  INSTALL  Makefile  MANIFESTO  README.md  redis.conf  runtest  runtest-cluster  runtest-sentinel  sentinel.conf  src  tests  utils
  make需要安装编译器,默认为gcc.
  [root@mongodb1 redis-3.2.1]# make
  cd src && make all
  make[1]: Entering directory `/root/redis/redis-3.2.1/src'
  CC adlist.o
  CC quicklist.o
  CC ae.o
  In file included from ae.c:53:
  ae_epoll.c: In function 'aeApiAddEvent':
  ae_epoll.c:75: warning: missing initializer
  ae_epoll.c:75: warning: (near initialization for 'ee.data')
  ae_epoll.c: In function 'aeApiDelEvent':
  ae_epoll.c:92: warning: missing initializer
  ae_epoll.c:92: warning: (near initialization for 'ee.data')
  CC anet.o
  anet.c: In function 'anetSockName':
  anet.c:640: warning: dereferencing pointer 's' does break strict-aliasing rules
  anet.c:638: note: initialized from here
  anet.c:644: warning: dereferencing pointer 's' does break strict-aliasing rules
  anet.c:642: note: initialized from here
  anet.c: In function 'anetPeerToString':
  anet.c:584: warning: dereferencing pointer 's' does break strict-aliasing rules
  anet.c:582: note: initialized from here
  anet.c:588: warning: dereferencing pointer 's' does break strict-aliasing rules
  anet.c:586: note: initialized from here
  anet.c: In function 'anetTcpAccept':
  anet.c:555: warning: dereferencing pointer 's' does break strict-aliasing rules
  anet.c:553: note: initialized from here
  anet.c:559: warning: dereferencing pointer 's' does break strict-aliasing rules
  anet.c:557: note: initialized from here
  CC dict.o
  CC server.o
  CC sds.o
  CC zmalloc.o
  CC lzf_c.o
  CC lzf_d.o
  CC pqsort.o
  CC zipmap.o
  CC sha1.o
  CC ziplist.o

  CC>  CC networking.o
  CC util.o
  CC object.o
  CC db.o
  CC replication.o
  CC rdb.o
  CC t_string.o
  CC t_list.o
  CC t_set.o
  CC t_zset.o
  CC t_hash.o
  CC config.o
  CC aof.o
  CC pubsub.o
  CC multi.o
  CC debug.o
  CC sort.o
  CC intset.o
  CC syncio.o
  CC cluster.o
  CC crc16.o
  CC endianconv.o
  CC slowlog.o
  CC scripting.o
  CC bio.o
  CC rio.o
  CC rand.o
  CC memtest.o
  CC crc64.o
  CC bitops.o
  CC sentinel.o
  CC notify.o
  CC setproctitle.o
  CC blocked.o
  CC hyperloglog.o
  CC latency.o
  CC sparkline.o
  CC redis-check-rdb.o
  CC geo.o
  LINK redis-server
  INSTALL redis-sentinel
  CC redis-cli.o
  LINK redis-cli
  CC redis-benchmark.o
  LINK redis-benchmark
  INSTALL redis-check-rdb
  CC redis-check-aof.o
  LINK redis-check-aof

  Hint: It's a good>  make[1]: Leaving directory `/root/redis/redis-3.2.1/src'
  make完成之后,进行install,默认安装路径为/usr/local/bin下,这里我们把他安装目录放到/usr/local/redis下,使用PREFIX指定目录:
  [root@mongodb1 redis-3.2.1]# mkdir /usr/local/redis
  [root@mongodb1 redis-3.2.1]# make PREFIX=/usr/local/redis install
  cd src && make install
  make[1]: Entering directory `/root/redis/redis-3.2.1/src'

  Hint: It's a good>  INSTALL install
  INSTALL install
  INSTALL install
  INSTALL install
  INSTALL install
  make[1]: Leaving directory `/root/redis/redis-3.2.1/src'
  将redis可执行目录添加到环境变量中,编辑~/.bash_profile添加redis环境变量:
  [root@mongodb1 bin]# cat ~/.bash_profile
  # .bash_profile
  # Get the aliases and functions
  if [ -f ~/.bashrc ]; then
  . ~/.bashrc
  fi
  # User specific environment and startup programs
  PATH=/usr/local/redis/bin:/usr/local/mongodb/bin:$PATH:$HOME/bin
  3.创建redis服务
  此时其实就可以启动redis服务了,例如:
  % ./redis-server --port 9999 --slaveof 127.0.0.1 6379
  % ./redis-server /etc/redis/6379.conf --loglevel debug
  但是我们一般还是把redis做成服务来启动,进入到utils目录,然后运行install_server.sh,运行这个会询问你几个问题,包括
  指定redis的端口号
  指定redis的配置文件
  指定redis的日志文件
  指定redis的数据目录文件
  指定redis的可执行目录文件.
  [root@mongodb1 utils]# ./install_server.sh
  Welcome to the redis service installer
  This script will help you easily set up a running redis server
  Please select the redis port for this instance: [6379]
  Selecting default: 6379
  Please select the redis config file name [/etc/redis/6379.conf]
  Selected default - /etc/redis/6379.conf
  Please select the redis log file name [/var/log/redis_6379.log] /data/redis/log/redis_6378.log
  Please select the data directory for this instance [/var/lib/redis/6379] /data/redis/6379
  Please select the redis executable path [/usr/local/redis/bin/redis-server]
  Selected config:
  Port           : 6379
  Config file    : /etc/redis/6379.conf
  Log file       : /data/redis/log/redis_6378.log
  Data dir       : /data/redis/6379
  Executable     : /usr/local/redis/bin/redis-server
  Cli Executable : /usr/local/redis/bin/redis-cli
  Is this ok? Then press ENTER to go on or Ctrl-C to abort.
  Copied /tmp/6379.conf => /etc/init.d/redis_6379
  Installing service...
  Successfully added to chkconfig!
  Successfully added to runlevels 345!
  Starting Redis server...
  Installation successful!
  完成之后,redis的服务就添加完毕了,服务名为redis_6379:
  [root@mongodb1 init.d]# ls -l re*
  -rwxr-xr-x  1 root root 1714 Jul  1 11:13 redis_6379
  -rwxr-xr-x. 1 root root 1822 Jan 16  2013 restorecond
  启动和关闭redis服务:
  [root@mongodb1 init.d]# service redis_6379 status
  Redis is running (19280)
  [root@mongodb1 init.d]# service redis_6379 stop
  Stopping ...
  Redis stopped
  [root@mongodb1 init.d]# service redis_6379 start
  Starting Redis server...
  使用redis-cli连接redis:
  [root@mongodb1 init.d]# redis-cli
  127.0.0.1:6379>
  4.redis服务解析
  其实做完以上几步,我们已经可以正常使用redis了,下面我们来解析一下redis的启动停止过程.我们解析/etc/init.d/redis_6379文件:
  #!/bin/sh
  #Configurations injected by install_server below....
  EXEC=/usr/local/redis/bin/redis-server
  CLIEXEC=/usr/local/redis/bin/redis-cli
  PIDFILE=/var/run/redis_6379.pid
  CONF="/etc/redis/6379.conf"
  REDISPORT="6379"
  ###############
  # SysV Init Information
  # chkconfig: - 58 74
  # description: redis_6379 is the redis daemon.
  ### BEGIN INIT INFO
  # Provides: redis_6379
  # Required-Start: $network $local_fs $remote_fs
  # Required-Stop: $network $local_fs $remote_fs
  # Default-Start: 2 3 4 5
  # Default-Stop: 0 1 6
  # Should-Start: $syslog $named
  # Should-Stop: $syslog $named
  # Short-Description: start and stop redis_6379
  # Description: Redis daemon
  ### END INIT INFO
  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
  可以发现,其实启动redis的语法就是:
  /usr/local/redis/bin/redis-server /etc/redis/6379.conf
  关闭redis的语法就是:
  /usr/local/redis/bin/redis-server -p 6379 shutdown
  检查redis是否运行,就是检查redis的pid文件下的进程是否存在.
  查看redis的配置文件/etc/redis/6379.conf,里面有很多注释,去除注释:
  [root@mongodb1 utils]# grep -E -v "^#" /etc/redis/6379.conf |sed '/^$/d'
  bind 127.0.0.1
  protected-mode yes
  port 6379
  tcp-backlog 511
  timeout 0
  tcp-keepalive 300
  daemonize yes
  supervised no
  pidfile /var/run/redis_6379.pid
  loglevel notice
  logfile /data/redis/log/redis_6379.log
  databases 16
  save 900 1
  save 300 10
  save 60 10000
  stop-writes-on-bgsave-error yes
  rdbcompression yes
  rdbchecksum yes
  dbfilename dump.rdb
  dir /data/redis/6379
  slave-serve-stale-data yes
  slave-read-only yes
  repl-diskless-sync no
  repl-diskless-sync-delay 5
  repl-disable-tcp-nodelay no
  slave-priority 100
  appendonly no
  appendfilename "appendonly.aof"
  appendfsync everysec
  no-appendfsync-on-rewrite no
  auto-aof-rewrite-percentage 100
  auto-aof-rewrite-min-size 64mb
  aof-load-truncated yes
  lua-time-limit 5000
  slowlog-log-slower-than 10000
  slowlog-max-len 128
  latency-monitor-threshold 0
  notify-keyspace-events ""
  hash-max-ziplist-entries 512
  hash-max-ziplist-value 64
  list-max-ziplist-size -2
  list-compress-depth 0
  set-max-intset-entries 512
  zset-max-ziplist-entries 128
  zset-max-ziplist-value 64
  hll-sparse-max-bytes 3000
  activerehashing yes
  client-output-buffer-limit normal 0 0 0
  client-output-buffer-limit slave 256mb 64mb 60
  client-output-buffer-limit pubsub 32mb 8mb 60
  hz 10
  aof-rewrite-incremental-fsync yes
  其中主要的参数:
  bind:绑定的ip地址
  port:监听端口号
  pidfile:pid文件名
  dir:数据文件目录
  logfile:日志文件地址
  ======================================================================================
  文件解压命令:tar -xzvf  redis-3.2.0.tar.gz
  cd  redis-3.2.0
  make  ## 编译
  安装路径:/opt/rh
  安装命令:make PREFIX=/opt/rh/redis install
  配置环境变量:PATH=/opt/rh/redis/bin:/usr/local/mongodb/bin:$PATH:$HOME/bin  ##环境变量尚未配置。
  重新启动计算机:shutdown -r now
  创建目录: /opt/rh/redis/bin
  创建目录:/opt/rh/redis/etc
  移动配置文件:mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server /opt/rh/redis/bin
  mv redis.conf /opt/rh/redis/etc
  启动服务:./redis-server   ##目前只是前台启动服务,后台服务未配置。
  ======================================================================================
  普通用户登陆Linux的时候,一般情况下PATH环境变量不包含/sbin 目录
  因此当需要执行/sbin路径下的命令(比如ifconfig)时需要给PATH添上这一个路径。初用Linux时的时候我是新建的shell终端中用如下命令 PATH=$PATH:/sbin
  虽然这样也能使PATH包含/sbin路径了,但是,当再重启一个shell终端时PATH的值去并没有改变,当再次用到/sbin下的命令时,还得用上述方法添上/sbin
  今天终于找到了彻底改变PATH的方法了.
  Linux中含有两个重要的文件 /etc/profile和$HOME/.bash_profile 每当系统登陆时都要读取这两个文件,用来初始化系统所用到的变量,其中/etc/profile是超级用户所用,$HOME/.bash_profile是每个用户自己独立的,我们可以修改该文件来设置一些变量。
  命令用法如下
  $ cd (进入用户登陆目录)
  $ls –al .bash_profile(.bash_profile为隐藏文件,因此要用ls –a命令查找)
  $vi .bash_profile(用vi编辑.bash_profile)
  在里面的PATH一行修改 添上需要的路径
  保存退出
  因为该文件是在每次登陆时才读取,因此需要重启才能生效


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-630390-1-1.html 上篇帖子: redis使用及远程连接 下篇帖子: centos下安装redis-it虫
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表