Redis操作,数据库操作

  1. 案例1:源码安装Redis缓存服务
  2. 案例2:常用Redis数据库操作指令
  3. 案例3:配置Redis主从服务器

1 案例1:源码安装Redis缓存服务

1.1 问题

本案例要求先快速搭建好一台Redis服务器,并测试该缓存服务器:

  • 设置变量test,值为123
  • 查看变量test的值
  • 设置计数器mycounter
  • 对计数器mycounter进行增量加1操作

1.2 方案

使用源码包安装Redis服务器,使用redis-cli客户端工具连接Redis服务器并测试缓存数据库。

使用redis-cli命令测试Redis服务时可以使用的命令列表如表-1所示。

表-1 Redis命令列表

1.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:安装Redis服务器

1)源码安装Redis软件

  1. [root@svr5 ~]# tar -xzf redis-3.0.6.tar.gz
  2. [root@svr5 ~]# cd redis-3.0.6
  3. [root@svr5 ~]# make
  4. [root@svr5 ~]# make install
  5. [root@svr5 ~]# ./utils/install_server.sh            //初始化
  6. Welcome to the redis service installer
  7. This script will help you easily set up a running redis server
  8. Please select the redis port for this instance: [6379]    //设置端口号,默认即可
  9. Selecting default: 6379
  10. Please select the redis config file name [/etc/redis/6379.conf] //配置文件
  11. Selected default - /etc/redis/6379.conf
  12. Please select the redis log file name [/var/log/redis_6379.log] //日志文件
  13. Selected default - /var/log/redis_6379.log
  14. Please select the data directory for this instance [/var/lib/redis/6379]
  15. //数据目录
  16. Selected default - /var/lib/redis/6379
  17. Please select the redis executable path [/usr/local/bin/redis-server]
  18. //Redis服务器软件存储路径
  19. Selected config:
  20. Port           : 6379
  21. Config file    : /etc/redis/6379.conf
  22. Log file       : /var/log/redis_6379.log
  23. Data dir       : /var/lib/redis/6379
  24. Executable     : /usr/local/bin/redis-server
  25. Cli Executable : /usr/local/bin/redis-cli
  26. Is this ok? Then press ENTER to go on or Ctrl-C to abort.
  27. //确认信息是否正确,回车确认即可
  28. Copied /tmp/6379.conf => /etc/init.d/redis_6379
  29. Installing service...
  30. Successfully added to chkconfig!
  31. Successfully added to runlevels 345!
  32. Starting Redis server...
  33. Installation successful!
  34. [root@svr5 ~]# ls /etc/init.d/redis_6379         //查看启动脚本

2)启用Redis服务并查看监听端口状态

  1. [root@svr5 ~]# /etc/init.d/redis_6379 restart
  2. [root@srv5 ~]# netstat -nutlp |grep redis
  3. tcp        0      0 0.0.0.0:6379    0.0.0.0:*    LISTEN      5749/redis-server *
  4. tcp        0      0 :::6379            :::*            LISTEN      5749/redis-server *

步骤二:测试缓存数据库

1)使用redis-cli测试数据库

  1. [root@srv5 ~]# redis-cli
  2. 127.0.0.1:6379> ping                        //测试服务器
  3. PONG
  4. 127.0.0.1:6379> set test 123                //设置变量
  5. OK
  6. 127.0.0.1:6379> get test                    //查看test值
  7. "123"
  8. 127.0.0.1:6379> INCR mycounter                //设置计数器mycounter
  9. (integer) 1
  10. 127.0.0.1:6379> INCR mycounter                //对计数器mycounter进行自增运算
  11. (integer) 2

2 案例2:常用Redis数据库操作指令

2.1 问题

  • 沿用练习一,通过redis-cli工具,对Redis数据库各数据类型进行增删改查等操作,要求如下:
  • 分别对Strings、Hash表、List列表三种数据类型进行增删改查等常见操作
  • 设置数据缓存时间
  • 清空所有数据
  • 对数据库操作

2.2 方案

使用redis-cli客户端工具连接Redis服务器并测试缓存数据库。

使用redis-cli命令测试Redis服务是可以使用的命令列表如表-2所示。

表-2 Redis命令列表

2.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:常用Redis数据操作指令

1)使用redis-cli测试数据库(字符串常见操作指南)

  1. [root@srv5 ~]# redis-cli
  2. 127.0.0.1:6379> ping
  3. PONG
  4. 127.0.0.1:6379> set string1 "hello the word"    //设置字符串变量
  5. OK
  6. 127.0.0.1:6379> get string1                    //查看字符串变量
  7. "hello the word"
  8. 127.0.0.1:6379> set string2 "hello" ex 5    //设置字符串变量,并设置过期时间为5秒
  9. OK
  10. 127.0.0.1:6379> get string2                //查看字符串变量
  11. "hello"
  12. 127.0.0.1:6379> get string2                //字符串过期后,查看该值为空
  13. (nil)
  14. 127.0.0.1:6379> get string1
  15. "hello the word"
  16. 127.0.0.1:6379> set string1 hello nx        //仅当string1不存在时,才执行set指令
  17. (nil)
  18. 127.0.0.1:6379> set string1 hello xx        //仅当string1存在时,才执行set指令
  19. OK
  20. 127.0.0.1:6379> get string1                     //查看修改后string1的值
  21. "hello"
  22. 127.0.0.1:6379> set string1 "hello the world"    //修改string1的值
  23. OK
  24. 127.0.0.1:6379> get string1
  25. "hello the world"
  26. 127.0.0.1:6379> setrange string1 6 "Redis"        //从第6个字符开始替换string1的值
  27. (integer) 15
  28. 127.0.0.1:6379> get string1
  29. "hello Redisorld"
  30. 127.0.0.1:6379> strlen string1                    //计算string1的长度
  31. (integer) 15
  32. 127.0.0.1:6379> append string1 xxx                //对string1进行追加操作
  33. (integer) 18
  34. 127.0.0.1:6379> get string1
  35. "hello Redisorldxxx"
  36. 127.0.0.1:6379> append string1 " xxx"
  37. (integer) 22
  38. 127.0.0.1:6379> get string1
  39. "hello Redisorldxxx xxx"
  40. 127.0.0.1:6379> setbit string2 0 1                //按位设置string2的值,0位为1
  41. (integer) 0
  42. 127.0.0.1:6379> setbit string2 1 1                //按位设置string2的值,1位为1
  43. (integer) 0
  44. 127.0.0.1:6379> setbit string2 2 1
  45. (integer) 0
  46. 127.0.0.1:6379> setbit string2 3 0
  47. (integer) 0
  48. 127.0.0.1:6379> get string2                    //不可以查看所有的值
  49. "\xe0"
  50. 127.0.0.1:6379> bitcount string2                 //统计string2中1的个数
  51. (integer) 3
  52. 127.0.0.1:6379> getbit string2 0                //查看string2第0位的值
  53. (integer) 1
  54. 127.0.0.1:6379> getbit string2 1                //查看string2第1位的值
  55. (integer) 1
  56. 127.0.0.1:6379> decr string3                    //递减运算,初始值为0
  57. (integer) -1
  58. 127.0.0.1:6379> decr string3
  59. (integer) -2
  60. 127.0.0.1:6379> decr string3
  61. (integer) -3
  62. 127.0.0.1:6379> decr string3
  63. (integer) -4
  64. 127.0.0.1:6379> decr string3
  65. (integer) -5
  66. 127.0.0.1:6379> set string4 10                    //自定义变量初始值为10
  67. OK
  68. 127.0.0.1:6379> decr string4                    //对自定义变量进行递减运算
  69. (integer) 9
  70. 127.0.0.1:6379> decr string4
  71. (integer) 8
  72. 127.0.0.1:6379> decr string4
  73. (integer) 7
  74. 127.0.0.1:6379> decrby string4 2                //对变量进行递减2运算
  75. (integer) 5
  76. 127.0.0.1:6379> decrby string4 2
  77. (integer) 3
  78. 127.0.0.1:6379> get string4
  79. "3"
  80. 127.0.0.1:6379> set string5 "hello the world"        //设置字符串变量
  81. OK
  82. 127.0.0.1:6379> getrange string5 0 4            //查看字串的第0至第4位
  83. "hello"
  84. 127.0.0.1:6379> getrange string5 -3 -1            //查看字串的倒数第3位至倒数第1位
  85. "rld"
  86. 127.0.0.1:6379> incr page                        //对变量进行递增运算,初始值为0
  87. (integer) 1
  88. 127.0.0.1:6379> incr page
  89. (integer) 2
  90. 127.0.0.1:6379> incr page
  91. (integer) 3
  92. 127.0.0.1:6379> incr page
  93. (integer) 4
  94. 127.0.0.1:6379> set string6 10                    //设置字符串变量为10
  95. OK
  96. 127.0.0.1:6379> incr string6                    //对变量进行递增运算
  97. (integer) 11
  98. 127.0.0.1:6379> incr string6
  99. (integer) 12
  100. 127.0.0.1:6379> incrby string6 2                //对变量进行递增2运算
  101. (integer) 14
  102. 127.0.0.1:6379> incrby string6 2
  103. (integer) 16
  104. 127.0.0.1:6379> incrby string6 2
  105. (integer) 18
  106. 127.0.0.1:6379> incrby string6 2
  107. (integer) 20
  108. 127.0.0.1:6379> set num 16.1                //设置浮点数变量
  109. OK
  110. 127.0.0.1:6379> incrbyfloat num 1.1        //对浮点数进行递增1.1运算
  111. "17.2"
  112. 127.0.0.1:6379> incrbyfloat num 1.1
  113. "18.3"
  114. 127.0.0.1:6379> incrbyfloat num 1.1
  115. "19.4"
  116. 127.0.0.1:6379> incrbyfloat num 1.1
  117. "20.5"

2)Hash表常见操作指南

  1. 127.0.0.1:6379> hset hkey google “www.g.cn”
  2. //设置hash表hkey,google列的值为www.g.cn
  3. (integer) 1
  4. 127.0.0.1:6379> hset hkey baidu “www.baidu.com”
  5. //设置hash表hkey,baidu列的值为www.baidu.com
  6. (integer) 1
  7. 127.0.0.1:6379> hget hkey google        //查看hash表hkey中google列的值
  8. "www.g.cn"
  9. 127.0.0.1:6379> hget hkey baidu        //查看hash表hkey中baidu列的值
  10. "www.baidu.com"
  11. 127.0.0.1:6379> hmset site google "www.g.cn" baidu "www.baidu.com"
  12. OK
  13. //一次性设置hash表site的多个列与值
  14. 127.0.0.1:6379> hmget site google baidu
  15. 1) "www.g.cn"
  16. 2) "www.baidu.com"
  17. //一次性查看hash表site的多个列值
  18. 127.0.0.1:6379> hgetall site                //查看site表中所有的列与值
  19. 1) "google"
  20. 2) "www.g.cn"
  21. 3) "baidu"
  22. 4) "www.baidu.com"
  23. 127.0.0.1:6379> hdel site google            //删除site表中google列
  24. (integer) 1
  25. 127.0.0.1:6379> hgetall site                //验证删除效果
  26. 1) "baidu"
  27. 2) "www.baidu.com"
  28. 127.0.0.1:6379> hmset site google "www.g.cn" baidu "www.baidu.com" sina "www.sina.com"
  29. OK
  30. 127.0.0.1:6379> hkeys site                    //查看site表的所有列
  31. 1) "baidu"
  32. 2) "google"
  33. 3) "sina"
  34. 127.0.0.1:6379> hvals site                    //查看site表中所有列的值
  35. 1) "www.baidu.com"
  36. 2) "www.g.cn"
  37. 3) "www.sina.com"
  38. 127.0.0.1:6379> hmget site google baidu    //一次性查看site表中的多个列值
  39. 1) "www.g.cn"
  40. 2) "www.baidu.com"

3)List列表常见操作指南

  1. 127.0.0.1:6379> lpush list1 a b c            //创建列表并赋值
  2. (integer) 3
  3. 127.0.0.1:6379> lpush list2 a                //创建列表并赋值
  4. (integer) 1
  5. 127.0.0.1:6379> lpush list2 b                //给列表追加新值
  6. (integer) 2
  7. 127.0.0.1:6379> lpush list2 c                //给列表追加新值
  8. (integer) 3
  9. 127.0.0.1:6379> lrange list1 0 -1
  10. //查看列表list1中的所有值,从0位到最后1位
  11. 1) "c"
  12. 2) "b"
  13. 3) "a"
  14. 127.0.0.1:6379> lrange list1 1 2            //查看列表中第1和2位的值
  15. 1) "b"
  16. 2) "a"
  17. 127.0.0.1:6379> lrange list1 1 -1            //查看列表中第1至最后1位的值
  18. 1) "b"
  19. 127.0.0.1:6379> lrange list2 0 -1            //查看所有的值
  20. 1) "a"
  21. 2) "c"
  22. 3) "b"
  23. 4) "a"
  24. 127.0.0.1:6379> lrange list2 0 -1
  25. 1) "t"
  26. 2) "a"
  27. 3) "c"
  28. 4) "b"
  29. 5) "a"
  30. 127.0.0.1:6379> lpop list2
  31. //返回list2列表头元素数据,并将该值从列表中删除,key不存在则返回nil
  32. "t"
  33. 127.0.0.1:6379> lrange list2 0 -1        //验证结果
  34. 1) "a"
  35. 2) "c"
  36. 3) "b"
  37. 4) "a"
  38. 127.0.0.1:6379> lpop list2                //接续删除头部元素
  39. "a"
  40. 127.0.0.1:6379> lrange list2 0 -1        //验证结果
  41. 1) "c"
  42. 2) "b"
  43. 3) "a"
  44. 127.0.0.1:6379> lpop list2
  45. "c"
  46. 127.0.0.1:6379> lrange list2 0 -1
  47. 1) "b"
  48. 2) "a"
  49. 127.0.0.1:6379> lrange list4 0 -1            //查看全部数据如下
  50. 1) "f"
  51. 2) "e"
  52. 3) "d"
  53. 4) "a"
  54. 5) "c"
  55. 127.0.0.1:6379> lindex list4 0                //返回list4中第0个值
  56. "f"
  57. 127.0.0.1:6379> lindex list4 1                //返回list4中第1个值
  58. "e"
  59. 127.0.0.1:6379> lindex list4 -1            //返回list4中最后1个值
  60. "c"
  61. 127.0.0.1:6379> lindex list4 -2            //返回list4中倒数第2个值
  62. "a"
  63. 127.0.0.1:6379> lrange list4 0 -1
  64. 1) "f"
  65. 2) "e"
  66. 3) "d"
  67. 4) "a"
  68. 5) "c"
  69. 127.0.0.1:6379> lset list4 0 test        //给list4的第0为插入值,值为test
  70. OK
  71. 127.0.0.1:6379> lrange list4 0 -1        //验证结果
  72. 1) "test"
  73. 2) "d"
  74. 3) "a"

4)其他操作指南

  1. 127.0.0.1:6379> set mykey "hello"            //定义字符串变量
  2. OK
  3. 127.0.0.1:6379> get mykey                    //查看变量
  4. "hello"
  5. 127.0.0.1:6379> del mykey                    //删除变量
  6. (integer) 1
  7. 127.0.0.1:6379> get mykey                    //验证结果
  8. (nil)
  9. 127.0.0.1:6379> set mykey "hello"            //定义变量即值
  10. OK
  11. 127.0.0.1:6379> get mykey                    //查看有值
  12. "hello"
  13. 127.0.0.1:6379> get mykey
  14. "hello"
  15. 127.0.0.1:6379> expire mykey 10            //定义过期时间
  16. (integer) 1
  17. 127.0.0.1:6379> get mykey                    //10秒后查看,无值
  18. (nil)
  19. 127.0.0.1:6379> set mykey "hello"            //设置变量
  20. OK
  21. 127.0.0.1:6379> persist mykey                //重新定义过期时间为,永久有效
  22. (integer) 1
  23. 127.0.0.1:6379> get mykey
  24. "hello"
  25. 127.0.0.1:6379> get mykey
  26. "hello"
  27. 127.0.0.1:6379> ttl mykey
  28. (integer) -1                            //永不过期
  29. 127.0.0.1:6379> expire mykey 10        //定义过期时间
  30. (integer) 1
  31. 127.0.0.1:6379> ttl mykey                //查看过期时间
  32. (integer) 9
  33. 127.0.0.1:6379> ttl mykey
  34. (integer) 8
  35. 127.0.0.1:6379> ttl mykey
  36. (integer) 7
  37. 127.0.0.1:6379> ttl mykey
  38. (integer) 6
  39. 127.0.0.1:6379> ttl mykey
  40. (integer) 5
  41. 127.0.0.1:6379> ttl mykey
  42. (integer) 4
  43. 127.0.0.1:6379> ttl mykey
  44. (integer) 3
  45. 127.0.0.1:6379> ttl mykey
  46. (integer) 3
  47. 127.0.0.1:6379> ttl mykey
  48. (integer) 2
  49. 127.0.0.1:6379> ttl mykey
  50. (integer) 1
  51. 127.0.0.1:6379> ttl mykey
  52. (integer) -2        //已经过期
  53. 127.0.0.1:6379> get mykey        //查看mykey的值已经为空
  54. (nil)
  55. 127.0.0.1:6379> set mykey "hello"
  56. OK
  57. 127.0.0.1:6379> keys *        //查看数据库下所有数据
  58. 1) "string6"
  59. 2) "list7"
  60. 3) "mykey"
  61. 4) "string4"
  62. 5) "db"
  63. 6) "num"
  64. 7) "result"
  65. 8) "hkey"
  66. 9) "string5"
  67. 10) "string1"
  68. 11) "bit1"
  69. 12) "page"
  70. 13) "bit2"
  71. 14) "site"
  72. 15) "string2"
  73. 16) "list1"
  74. 17) "string3"
  75. 18) "list6"
  76. 127.0.0.1:6379> keys li*
  77. 1) "list7"
  78. 2) "list1"
  79. 3) "list6"
  80. 127.0.0.1:6379> keys s*
  81. 1) "string6"
  82. 2) "string4"
  83. 3) "string5"
  84. 4) "string1"
  85. 5) "site"
  86. 6) "string2"
  87. 7) "string3"
  88. 127.0.0.1:6379> keys string[15]        //查看string1或string5
  89. 1) "string5"
  90. 2) "string1"
  91. 127.0.0.1:6379> keys string[0-9]        //查看string0值9的数据
  92. 1) "string6"
  93. 2) "string4"
  94. 3) "string5"
  95. 4) "string1"
  96. 5) "string2"
  97. 6) "string3"
  98. 127.0.0.1:6379> keys ?it*        //使用通配符所有数据
  99. 1) "bit1"
  100. 2) "bit2"
  101. 127.0.0.1:6379> select 1        //进入1数据库,默认数据库为0
  102. OK
  103. 127.0.0.1:6379[1]> keys *        //在新数据库中查看数据为空
  104. (empty list or set)
  105. 127.0.0.1:6379[1]> set test "test"        //在数据库1中创建变量
  106. OK
  107. 127.0.0.1:6379[1]> get test            //查看变量的值
  108. "test"
  109. 127.0.0.1:6379[1]> select 2            //进入2数据库
  110. OK
  111. 127.0.0.1:6379[2]> keys *                //查看所有数据
  112. (empty list or set)
  113. 127.0.0.1:6379[2]> select 1
  114. OK
  115. 127.0.0.1:6379[1]> keys *
  116. 1) "test"
  117. 127.0.0.1:6379[1]> select 0
  118. OK
  119. 127.0.0.1:6379> keys *
  120. 1) "string6"
  121. 2) "list7"
  122. 3) "mykey"
  123. 4) "string4"
  124. 5) "db"
  125. 6) "num"
  126. 7) "result"
  127. 8) "hkey"
  128. 9) "string5"
  129. 10) "string1"
  130. 11) "bit1"
  131. 12) "page"
  132. 13) "bit2"
  133. 14) "site"
  134. 15) "string2"
  135. 16) "list1"
  136. 17) "string3"
  137. 18) "list6"
  138. 127.0.0.1:6379> flushall        //清空所有数据
  139. OK
  140. 127.0.0.1:6379> keys *        //验证结果
  141. 127.0.0.1:6379[2]> select 0
  142. OK
  143. 127.0.0.1:6379> set mykey "hello"
  144. OK
  145. 127.0.0.1:6379> keys *
  146. 1) "mykey"
  147. 127.0.0.1:6379> select 1
  148. OK
  149. 127.0.0.1:6379[1]> keys *
  150. (empty list or set)
  151. 127.0.0.1:6379[1]> select 0
  152. OK
  153. 127.0.0.1:6379> keys *
  154. 1) "mykey"
  155. 127.0.0.1:6379> move mykey 1        //将数据库0中的mykey变量移动至数据库1
  156. (integer) 1
  157. 127.0.0.1:6379> keys *        //在数据库0中查看为空
  158. (empty list or set)
  159. 127.0.0.1:6379> select 1        //进入数据库1
  160. OK
  161. 127.0.0.1:6379[1]> keys *        //查看所有数据库
  162. 1) "mykey"
  163. 127.0.0.1:6379[1]> lpush cost 1 8 7 2 5        //创建列表cost
  164. (integer) 5
  165. 127.0.0.1:6379[1]> sort cost                    //对列表值进行排序
  166. 1) "1"
  167. 2) "2"
  168. 3) "5"
  169. 4) "7"
  170. 5) "8"

案例3:配置Redis主从服务器

3.1 问题

本案例要求先快速搭建好两台Redis服务器,实现两台服务器之间自动数据同步,具体要求如下:

  • 主服务器IP为192.168.2.100
  • 从服务器IP为192.168.2.200
  • 主服务器认证密码为redis123
  • 测试主从数据是否正常通过

3.2 方案

通过修改Redis配置文件,实现两台服务器之间的自动主从同步功能,方案拓扑如图-1所示。

图-1

3.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:配置主从服务器设置

1)主服务器安装Redis

  1. [root@svr100 ~]# tar -xzf redis-3.0.6.tar.gz
  2. [root@svr100 ~]# cd redis-3.0.6
  3. [root@svr100 ~]# make
  4. [root@svr100 ~]# make install
  5. [root@svr100 ~]# cd utils/
  6. [root@svr100 ~]#./install_server.sh
  7. Welcome to the redis service installer
  8. This script will help you easily set up a running redis server
  9. Please select the redis port for this instance: [6379]
  10. Selecting default: 6379
  11. Please select the redis config file name [/etc/redis/6379.conf]
  12. Selected default - /etc/redis/6379.conf
  13. Please select the redis log file name [/var/log/redis_6379.log]
  14. Selected default - /var/log/redis_6379.log
  15. Please select the data directory for this instance [/var/lib/redis/6379]
  16. Selected default - /var/lib/redis/6379
  17. Please select the redis executable path [/usr/local/bin/redis-server]
  18. Selected config:
  19. Port           : 6379
  20. Config file    : /etc/redis/6379.conf
  21. Log file       : /var/log/redis_6379.log
  22. Data dir       : /var/lib/redis/6379
  23. Executable     : /usr/local/bin/redis-server
  24. Cli Executable : /usr/local/bin/redis-cli
  25. Is this ok? Then press ENTER to go on or Ctrl-C to abort.
  26. Copied /tmp/6379.conf => /etc/init.d/redis_6379
  27. Installing service...
  28. Successfully added to chkconfig!
  29. Successfully added to runlevels 345!
  30. Starting Redis server...
  31. Installation successful!

2)从服务器安装Redis

  1. [root@svr200 ~]# tar -xzf redis-3.0.6.tar.gz
  2. [root@svr200 ~]# cd redis-3.0.6
  3. [root@svr200 ~]# make
  4. [root@svr200 ~]# make install
  5. [root@svr200 ~]# cd utils/
  6. [root@svr200 ~]#./install_server.sh
  7. Welcome to the redis service installer
  8. This script will help you easily set up a running redis server
  9. Please select the redis port for this instance: [6379]
  10. Selecting default: 6379
  11. Please select the redis config file name [/etc/redis/6379.conf]
  12. Selected default - /etc/redis/6379.conf
  13. Please select the redis log file name [/var/log/redis_6379.log]
  14. Selected default - /var/log/redis_6379.log
  15. Please select the data directory for this instance [/var/lib/redis/6379]
  16. Selected default - /var/lib/redis/6379
  17. Please select the redis executable path [/usr/local/bin/redis-server]
  18. Selected config:
  19. Port           : 6379
  20. Config file    : /etc/redis/6379.conf
  21. Log file       : /var/log/redis_6379.log
  22. Data dir       : /var/lib/redis/6379
  23. Executable     : /usr/local/bin/redis-server
  24. Cli Executable : /usr/local/bin/redis-cli
  25. Is this ok? Then press ENTER to go on or Ctrl-C to abort.
  26. Copied /tmp/6379.conf => /etc/init.d/redis_6379
  27. Installing service...
  28. Successfully added to chkconfig!
  29. Successfully added to runlevels 345!
  30. Starting Redis server...
  31. Installation successful!

步骤二:配置主从服务器设置

1)修改主服务器/etc/redis/6379.conf配置文件

  1. [root@svr100 ~]# vim /etc/redis/6379.conf
  2. requirepass redis123                               //设置服务器密码
  3. [root@svr100 ~]# /etc/init.d/redis_6379 restart       //重启服务

2)修改主服务器的启动脚本,添加服务器密码

  1. [root@svr100 ~]# vim  /etc/init.d/redis_6379
  2. $CLIEXEC –a redis123  -p $REDISPORT shutdown

3)修改从服务器/etc/redis/6379.conf配置文件

  1. [root@svr200 ~]# vim /etc/redis/6379.conf
  2. slaveof 192.168.4.100 6379
  3. masterauth redis123
  4. [root@svr200 ~]# /etc/init.d/redis_6379  restart

步骤三:验证效果

1) 主服务器操作

  1. [root@svr100 ~]# redis-cli –h 192.168.4.100 –a redis123      //登录主服务器设置数据
  2. 192.168.4.10:6379> set test 123456
  3. OK

2) 从服务器操作

  1. [root@svr200 ~]# redis-cli –h 192.168.4.200            //登录主服务器查看数据同步效果
  2. 192.168.4.20:6379> set test
  3. 123456

Redis操作,数据库操作的更多相关文章

  1. linux中mysql,mongodb,redis,hbase数据库操作

    .实验内容与完成情况:(实验具体步骤和实验截图说明) (一) MySQL 数据库操作 学生表 Student Name English Math Computer zhangsan lisi 根据上面 ...

  2. redis多数据库操作

    redis下,数据库是由一个整数索引标识,而不是由一个数据库名称.默认情况下,一个客户端连接到数据库0. redis配置文件中下面的参数来控制数据库总数: databases 16   [root@M ...

  3. ado.net的简单数据库操作(二)之封装SqlHelperl类

    今天我书接上回,接着昨天的ado.net的数据库操作的相关知识来讲哈! 从上篇文章给出的实例来看,你一定会发现,操作数据库其实还挺麻烦的,就连一个最简单的数据库操作语句都要包括 定义数据库连接字符串. ...

  4. Python操作数据库之 MySQL

    Python操作数据库之MySQL 一.安装Python-MySQLdb模块 Python-MySQLdb是一个操作数据库的模块,Python 通过它对 mysql 数据实现各种操作. 如果要源码安装 ...

  5. Litepal 数据库操作框架的使用 (火)

    LitePal是GitHub上一款开源的Android数据库框架. 它採用了对象关系映射(ORM)的模式,将平时开发时最经常使用的一些数据库功能进行了封装.使得开发人员不用编写一行SQL语句就能够完毕 ...

  6. MySQL的操作数据库SQL语法

    MySQL的操作数据库SQL语法 顺序:操作数据库 > 操作数据库中的表 > 操作数据库中的表的数据 MySQL不区分大小写字母 1. 操作数据库 1.创建数据库 2.删除数据库 3.使用 ...

  7. Django1.11模型类数据库操作

    django模型类数据库操作 数据库操作 添加数据 1,创建类对象,属性赋值添加 book= BookInfo(name='jack',pub_date='2010-1-1') book.save() ...

  8. MySQL操作数据库

    2.操作数据库 操作数据库>操作数据库中的表>操作表中的数据 Mysql关键字不区分大小写 2.1操作数据库 2.1.1创建数据库  create database if not EXIS ...

  9. Python开发【十一章】:数据库操作Memcache、Redis

    一.Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的 ...

  10. php redis数据库操作类

    <?php namespace iphp\db; use iphp\App; /** * redis操作类 * 说明,任何为false的串,存在redis中都是空串. * 只有在key不存在时, ...

随机推荐

  1. ElasticSearch 6.2.4 实践

    参考资料 ElasticSearch 官网 ElasticSearch,Kibana,Asp.net Core with docker 示例 阮一峰 ElasticSearch 基础概念 索引(ind ...

  2. 基于微信小程序的租房小程序

    乐直租全国租房小程序前端 房源分钟上传,可快捷联系房东的小程序. 该小程序操作简单,布局清新,欢迎 start ~ 传送门:Github 扫码体验: pages: 首页 index 选择发布页 bef ...

  3. Vue2.0 【第二季】第6节 Component 初识组件

    目录 Vue2.0 [第二季]第6节 Component 初识组件 第6节 Component 初识组件 一.全局化注册组件 二.局部注册组件局部 三.组件和指令的区别 Vue2.0 [第二季]第6节 ...

  4. Python实现对excel的操作

    1.操作excel使用第三方库openpyxl安装:pip install openpyxy引入:import openpyxl2.常用简单操作1)打开excel文件获取工作簿wb = openpyx ...

  5. Oracle数据库使用sysdba登陆时出现ORA-01031: insufficient privileges问题

    今天在自己本本上装上了oracle数据库,然而在命令框登录时 用 sqlplus / as sysdba   时却出现了: insufficient privileges问题 原因就是没有加入ora_ ...

  6. Flask-Sockets实时的监控画面

    Ajax轮询是通过特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器.这种简单粗暴模式有一个明显的缺点,就是浏览器需要不断的向服务器发出请求,H ...

  7. 项目部署Django+celery+redis

    celery介绍 1.celery应用举例 1.Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理,   如果你的业务场景中需要用到异步任务,就可以 ...

  8. DS01-线性表

    0.PTA得分截图 1.本周内容总结 1.1总结线性表内容 顺序表结构体定义 typedef struct LNode *List struct LNode { ElementType Data[MA ...

  9. Vulnhub 靶场 Dijnn WP

    About djinn: 1 描述 难度级别:中等 Flag:user.txt和root.txt 说明:该计算机是VirtualBox以及VMWare兼容的.DHCP将自动分配IP.您将在登录屏幕上看 ...

  10. [前端开发]Vue组件化的思想

    组件化的思想 将一个页面中的处理逻辑放在一起,处理起来就会很复杂,不利于后续管理和扩展. 如果将页面拆分成一个个小的功能块,每个功能块实现自己的内容,之后对页面的管理和维护就变得很容易了. 注册组件的 ...