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

[经验分享] Redis安装及主从复制实战

[复制链接]

尚未签到

发表于 2018-11-5 13:25:35 | 显示全部楼层 |阅读模式
  Redis 是一款开源的,使用C语言编写的、支持网络交互的、可基于内存也可持久化的高性能Key-Value存储系统(cache and store)。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(hashes), 列表(list), 集合(sets) 和 有序集合(sorted       sets)等类型。
Redis作者谈Redis应用场景:http://blog.nosqlfan.com/html/2235.html
  
  1.redis安装部署:
  wget http://download.redis.io/releases/redis-3.0.5.tar.gz
  tar xf redis-3.0.5.tar.gz
  cd redis-3.0.5
  less README   #(如何安装,查看README,INSTALL)
  make MALLOC=jemalloc
  make PREFIX=/application/redis-3.0.5 install
  ln -s /application/redis-3.0.5/ /application/redis
  echo "export PATH=/application/redis/bin/:$PATH" >>/etc/profile
  source /etc/profile
  [root@LB-111-06 ~]# which redis-server
  /application/redis/bin/redis-server
  [root@LB-111-06 redis-3.0.5]# ls
  00-RELEASENOTES  INSTALL     runtest           tests
  BUGS             Makefile    runtest-cluster   utils
  CONTRIBUTING     MANIFESTO   runtest-sentinel
  COPYING          README      sentinel.conf
  deps             redis.conf  src
  [root@LB-111-06 redis-3.0.5]# mkdir /application/redis/conf
  [root@LB-111-06 redis-3.0.5]# cp redis.conf /application/redis/conf/
  [root@LB-111-06 redis-3.0.5]# redis-server /application/redis/conf/redis.conf  &
  [1] 5321
  5321:M 01 Nov 21:38:48.524 * Increased maximum number of open files to 10032 (it was originally set to 1024).
  _._
  _.-``__ ''-._
  _.-``    `.  `_.  ''-._           Redis 3.0.5 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
  (    '      ,       .-`  | `,    )     Running in standalone mode
  |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
  |    `-._   `._    /     _.-'    |      PID: 5321
  `-._    `-._  `-./  _.-'    _.-'
  |`-._`-._    `-.__.-'    _.-'_.-'|
  |    `-._`-._        _.-'_.-'    |           http://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'
  |`-._`-._    `-.__.-'    _.-'_.-'|
  |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'
  `-._    `-.__.-'    _.-'
  `-._        _.-'
  `-.__.-'
  5321:M 01 Nov 21:38:48.525 # Server started, Redis version 3.0.5
  5321:M 01 Nov 21:38:48.525 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
  5321:M 01 Nov 21:38:48.525 * The server is now ready to accept connections on port 6379
  [root@LB-111-06 redis-3.0.5]# killall redis-server
  5321:signal-handler (1446385182) Received SIGTERM scheduling shutdown...
  5321:M 01 Nov 21:39:42.523 # User requested shutdown...
  5321:M 01 Nov 21:39:42.523 * Saving the final RDB snapshot before exiting.
  5321:M 01 Nov 21:39:42.526 * DB saved on disk
  5321:M 01 Nov 21:39:42.526 # Redis is now ready to exit, bye bye...
  [1]+  Done                    redis-server /application/redis/conf/redis.conf
  [root@LB-111-06 redis-3.0.5]#  sysctl vm.overcommit_memory=1
  vm.overcommit_memory = 1
  [root@LB-111-06 redis-3.0.5]# redis-server  /application/redis/conf/redis.conf  &
  [1] 5334
  5334:M 01 Nov 21:42:03.900 * Increased maximum number of open files to 10032 (it was originally set to 1024).
  _._
  _.-``__ ''-._
  _.-``    `.  `_.  ''-._           Redis 3.0.5 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
  (    '      ,       .-`  | `,    )     Running in standalone mode
  |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
  |    `-._   `._    /     _.-'    |      PID: 5334
  `-._    `-._  `-./  _.-'    _.-'
  |`-._`-._    `-.__.-'    _.-'_.-'|
  |    `-._`-._        _.-'_.-'    |           http://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'
  |`-._`-._    `-.__.-'    _.-'_.-'|
  |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'
  `-._    `-.__.-'    _.-'
  `-._        _.-'
  `-.__.-'
  5334:M 01 Nov 21:42:03.900 # Server started, Redis version 3.0.5
  5334:M 01 Nov 21:42:03.900 * DB loaded from disk: 0.000 seconds
  5334:M 01 Nov 21:42:03.900 * The server is now ready to accept connections on port 6379
  [root@LB-111-06 redis-3.0.5]# netstat -tunlp|grep 6379
  tcp        0      0 0.0.0.0:6379                0.0.0.0:*                   LISTEN      5334/redis-server *
  tcp        0      0 :::6379                     :::*                        LISTEN      5334/redis-server *
  [root@LB-111-06 redis-3.0.5]# lsof -i:6379

  COMMAND    PID USER   FD   TYPE DEVICE>  redis-ser 5334 root    4u  IPv6  20820      0t0  TCP *:6379 (LISTEN)
  redis-ser 5334 root    5u  IPv4  20822      0t0  TCP *:6379 (LISTEN)
  [root@LB-111-06 redis-3.0.5]# redis-cli  shutdown     #关闭服务
  5334:M 01 Nov 21:46:49.015 # User requested shutdown...
  5334:M 01 Nov 21:46:49.015 * Saving the final RDB snapshot before exiting.
  5334:M 01 Nov 21:46:49.017 * DB saved on disk
  5334:M 01 Nov 21:46:49.017 # Redis is now ready to exit, bye bye...
  [1]+  Done                    redis-server /application/redis/conf/redis.conf
  [root@LB-111-06 redis-3.0.5]# lsof -i:6379
  [root@LB-111-06 redis-3.0.5]# ll /application/redis/
  total 4
  drwxr-xr-x 2 root root 4096 Nov  1 21:19 bin
  [root@LB-111-06 redis-3.0.5]# tree /application/redis/bin
  /application/redis/bin
  ├── redis-benchmark  #Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能
  ├── redis-check-aof  #更新日志检查
  ├── redis-check-dump #用于本地数据库检查
  ├── redis-cli        #Redis命令行操作工具。当然你也可以用telnet根据其纯文本协议来操作
  ├── redis-sentinel -> redis-server
  └── redis-server     #Redis服务器的daemon启动程序
  0 directories, 6 files
  [root@LB-111-06 redis-3.0.5]# redis-cli --help
  redis-cli 3.0.5
  Usage: redis-cli [OPTIONS] [cmd [arg [arg ...]]]
  -h       Server hostname (default: 127.0.0.1).
  -p           Server port (default: 6379).
  -s         Server socket (overrides hostname and port).
  -a       Password to use when connecting to the server.
  -r         Execute specified command N times.
  -i       When -r is used, waits  seconds per command.
  It is possible to specify sub-second times like -i 0.1.
  -n             Database number.
  -x                 Read last argument from STDIN.
  -d      Multi-bulk delimiter in for raw formatting (default: \n).
  -c                 Enable cluster mode (follow -ASK and -MOVED redirections).
  --raw              Use raw formatting for replies (default when STDOUT is
  not a tty).
  --no-raw           Force formatted output even when STDOUT is not a tty.
  --csv              Output in CSV format.
  --stat             Print rolling stats about server: mem, clients, ...
  --latency          Enter a special mode continuously sampling latency.
  --latency-history  Like --latency but tracking latency changes over time.
  Default time interval is 15 sec. Change it using -i.
  --latency-dist     Shows latency as a spectrum, requires xterm 256 colors.
  Default time interval is 1 sec. Change it using -i.
  --lru-test   Simulate a cache workload with an 80-20 distribution.
  --slave            Simulate a slave showing commands received from the master.
  --rdb    Transfer an RDB dump from remote server to local file.
  --pipe             Transfer raw Redis protocol from stdin to server.
  --pipe-timeout  In --pipe mode, abort with error if after sending all data.
  no reply is received within  seconds.
  Default timeout: 30. Use 0 to wait forever.
  --bigkeys          Sample Redis keys looking for big keys.
  --scan             List all keys using the SCAN command.
  --pattern     Useful with --scan to specify a SCAN pattern.
  --intrinsic-latency  Run a test to measure intrinsic system latency.
  The test will run for the specified amount of seconds.
  --eval       Send an EVAL command using the Lua script at .
  --help             Output this help and exit.
  --version          Output version and exit.
  Examples:
  cat /etc/passwd | redis-cli -x set mypasswd
  redis-cli get mypasswd
  redis-cli -r 100 lpush mylist x
  redis-cli -r 100 -i 1 info | grep used_memory_human:
  redis-cli --eval myscript.lua key1 key2 , arg1 arg2 arg3
  redis-cli --scan --pattern '*:12345*'
  (Note: when using --eval the comma separates KEYS[] from ARGV[] items)
  When no command is given, redis-cli starts in interactive mode.
  Type "help" in interactive mode for information on available commands.
  [root@LB-111-06 redis-3.0.5]# redis-cli
  127.0.0.1:6379> help
  redis-cli 3.0.5
  Type: "help @" to get a list of commands in
  "help " for help on
  "help " to get a list of possible help topics
  "quit" to exit
  127.0.0.1:6379> help get
  GET key
  summary: Get the value of a key
  since: 1.0.0
  group: string
  127.0.0.1:6379> help set
  SET key value [EX seconds] [PX milliseconds] [NX|XX]
  summary: Set the string value of a key
  since: 1.0.0
  group: string
  127.0.0.1:6379> set no002 oldboy
  OK
  127.0.0.1:6379> get no002
  "oldboy"
  127.0.0.1:6379> quit
  [root@LB-111-06 redis-3.0.5]# redis-cli  -h 10.0.0.6 -p 6379 set no001 zhangsan
  OK
  [root@LB-111-06 redis-3.0.5]# redis-cli  -h 10.0.0.6 -p 6379 get no001
  "zhangsan"
  [root@LB-111-06 redis-3.0.5]# redis-cli del no001
  (integer) 1
  [root@LB-111-06 redis-3.0.5]# redis-cli del no001
  (integer) 0
  [root@LB-111-06 redis-3.0.5]# telnet 127.0.0.1 6379
  Trying 127.0.0.1...
  Connected to 127.0.0.1.
  Escape character is '^]'.
  set no003 jisu
  +OK
  get no003
  $4
  jisu
  2.redis的php客户端扩展安装
  下载:https://github.com/nicolasff/phpredis/archive/phpredis-2.2.4.tar.gz
  tar zxvf phpredis-2.2.4.tar.gz  #解压
  cd phpredis-2.2.4                    #进入安装目录
  /application/php/bin/phpize  #生成configure配置文件
  ./configure --with-php-config=/application/php/bin/php-config
  make             #编译
  make install  #安装
  #安装完成之后,出现下面的安装路径
  /application/php5.6.12/lib/php/extensions/no-debug-zts-20131226/
  3.配置php支持
  vi   #编辑配置文件,在最后一行添加以下内容
  添加
  extension = redis.so
  extension_dir = "/application/php5.6.12/lib/php/extensions/no-debug-zts-20131226/"
  4.redis配置文件介绍及主从同步配置:
  a、slave配置:
  210 # slaveof  
  211    slaveof  10.0.0.6   6379  #为master的IP及服务端口
  [root@LNMP-07 conf]# redis-cli -h localhost -p 6379 monitor  #在slave库打开主从同步实时监控
  OK
  1448619846.561773 [0 10.0.0.6:6379] "PING"
  1448619856.670778 [0 10.0.0.6:6379] "PING"
  ...............................
  1448619947.631375 [0 10.0.0.6:6379] "PING"
  b、master操作:
  [root@LB-111-06 ~]# redis-cli
  127.0.0.1:6379> set t1 oldboy01
  OK
  127.0.0.1:6379> get t1
  "oldboy01"
  127.0.0.1:6379>
  此时再查看从库:
  。。。。。。。。。。。。。。。
  1448619947.631375 [0 10.0.0.6:6379] "PING"
  1448619955.222078 [0 10.0.0.6:6379] "SELECT" "0"
  1448619955.222147 [0 10.0.0.6:6379] "set" "t1" "oldboy01"
  主库连接到从库查看:
  [root@LB-111-06 ~]# redis-cli -h 10.0.0.7 get t1
  "oldboy01"
  [root@LB-111-06 ~]# redis-cli -h localhost -p 6379 info       #查看redis服务的统计信息
  # Server
  redis_version:3.0.5
  redis_git_sha1:00000000
  redis_git_dirty:0
  redis_build_id:b358be82c008aa44
  redis_mode:standalone
  os:Linux 2.6.32-504.el6.x86_64 x86_64
  arch_bits:64
  multiplexing_api:epoll
  gcc_version:4.4.7
  process_id:5357
  run_id:b93947dbd3db2bc911115f9187d3d3f176861c17
  tcp_port:6379
  uptime_in_seconds:5665
  uptime_in_days:0
  hz:10
  lru_clock:3551121
  config_file:/application/redis/conf/redis.conf
  # Clients
  connected_clients:1
  client_longest_output_list:0
  client_biggest_input_buf:0
  blocked_clients:0
  # Memory
  used_memory:1884728
  used_memory_human:1.80M
  used_memory_rss:2523136
  used_memory_peak:1920672
  used_memory_peak_human:1.83M
  used_memory_lua:36864
  mem_fragmentation_ratio:1.34
  mem_allocator:jemalloc-3.6.0
  # Persistence
  loading:0
  rdb_changes_since_last_save:1
  rdb_bgsave_in_progress:0
  rdb_last_save_time:1446391003
  rdb_last_bgsave_status:ok
  rdb_last_bgsave_time_sec:0
  rdb_current_bgsave_time_sec:-1
  aof_enabled:0
  aof_rewrite_in_progress:0
  aof_rewrite_scheduled:0
  aof_last_rewrite_time_sec:-1
  aof_current_rewrite_time_sec:-1
  aof_last_bgrewrite_status:ok
  aof_last_write_status:ok
  # Stats
  total_connections_received:13
  total_commands_processed:703
  instantaneous_ops_per_sec:1
  total_net_input_bytes:25030
  total_net_output_bytes:1198
  instantaneous_input_kbps:0.04
  instantaneous_output_kbps:0.00
  rejected_connections:0
  sync_full:1
  sync_partial_ok:0
  sync_partial_err:0
  expired_keys:0
  evicted_keys:0
  keyspace_hits:4
  keyspace_misses:0
  pubsub_channels:0
  pubsub_patterns:0
  latest_fork_usec:310
  migrate_cached_sockets:0
  # Replication
  role:master
  connected_slaves:1
  slave0:ip=10.0.0.7,port=6379,state=online,offset=1011,lag=1
  master_repl_offset:1011
  repl_backlog_active:1
  repl_backlog_size:1048576
  repl_backlog_first_byte_offset:2
  repl_backlog_histlen:1010
  # CPU
  used_cpu_sys:4.19
  used_cpu_user:1.95
  used_cpu_sys_children:0.00
  used_cpu_user_children:0.00
  # Cluster
  cluster_enabled:0
  # Keyspace
  db0:keys=3,expires=0,avg_ttl=0
  [root@LB-111-06 ~]#redis-cli -h localhost -p 6379 info Replication
  # Replication
  role:master
  connected_slaves:1
  slave0:ip=10.0.0.7,port=6379,state=online,offset=1277,lag=1
  master_repl_offset:1277
  repl_backlog_active:1
  repl_backlog_size:1048576
  repl_backlog_first_byte_offset:2
  repl_backlog_histlen:1276
  [root@LB-111-06 ~]# redis-cli
  127.0.0.1:6379> help info
  INFO [section]
  summary: Get information and statistics about the server
  since: 1.0.0
  group: server
  127.0.0.1:6379> info stats
  # Stats
  total_connections_received:15
  total_commands_processed:952
  instantaneous_ops_per_sec:1
  total_net_input_bytes:34215
  total_net_output_bytes:3844
  instantaneous_input_kbps:0.04
  instantaneous_output_kbps:0.00
  rejected_connections:0
  sync_full:1
  sync_partial_ok:0
  sync_partial_err:0
  expired_keys:0
  evicted_keys:0
  keyspace_hits:4
  keyspace_misses:0
  pubsub_channels:0
  pubsub_patterns:0
  latest_fork_usec:162
  migrate_cached_sockets:0
  127.0.0.1:6379> help
  redis-cli 3.0.5
  Type: "help @" to get a list of commands in
  "help " for help on
  "help " to get a list of possible help topics
  "quit" to exit


运维网声明 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-631166-1-1.html 上篇帖子: Redis的安装和使用之三------redis.conf配置释义 下篇帖子: Infinispan-Redis配置使用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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