Redis几种数据类型的练习和主从复制的配置

一、string list hash结构中,每个至少完成5个命令,包含插入 修改 删除 查询,list 和hash还需要增加遍历的操作命令

String:
#判断该键是否存在,存在返回1,否则返回0。
#该键并不存在,因此append命令返回当前Value的长度。
#该键已经存在,因此返回追加后Value的长度。
#通过get命令获取该键,以判断append的结果。 #通过set命令为键设置新值,并覆盖原有值。
#设置Key的值为20 #该Key的值递增1
#该Key的值递减1
#该Key的值增5
#该Key的值减-10

在这里插入图片描述

命令原型时间复杂度命令描述返回值
GETSET key valueO(1)原子性的设置该Key为指定的Value,同时返回该Key的原 有值。和GET命令一样,该命令也只能处理string Value, 否则Redis将给出相关的错误信息。返回该 Key的原 有值,如 果该Key 之前并不 存在,则 返回nil。

在这里插入图片描述
List:

  1. LPUSH/LPUSHX/LRANGE:
    #mykey键并不存在,该命令会创建该键及与其关联的List,之后在将参数中的values从左到右依次插入。
    #取链表中的全部元素,其中0表示第一个元素,-1表示最后一个元素。
    #取从位置0开始到位置2结束的3个元素。
    #mykey2键此时并不存在,因此该命令将不会进行任何操作,其返回值为0。
    #可以看到mykey2没有关联任何List Value。
    #mykey键此时已经存在,所以该命令插入成功,并返回链表中当前元素的数量。
    #获取该键的List Value的头部元素。
    在这里插入图片描述
  2. LPOP/LLEN:
    在这里插入图片描述
    #在执行lpop命令两次后,链表头部的两个元素已经被弹出,此时链表中元素的数量是7
    在这里插入图片描述
  3. LREM/LSET/LINDEX/LTRIM:
    #为后面的示例准备测试数据。
    #从头部(left)向尾部(right)变量链表,删除2个值等于a的元素,返回值为实际删除的数量。
    #看出删除后链表中的全部元素。
    #获取索引值为1(头部的第二个元素)的元素值。
    #将索引值为1(头部的第二个元素)的元素值设置为新值e。
    #查看是否设置成功。
    #索引值6超过了链表中元素的数量,该命令返回nil。
    #设置的索引值6超过了链表中元素的数量,设置失败,该命令返回错误信息。
    #仅保留索引值0到2之间的3个元素,注意第0个和第2个元素均被保留。
    #查看trim后的结果
    在这里插入图片描述
  4. LINSERT:
    #删除该键便于后面的测试。
    #为后面的示例准备测试数据。
    #在a的前面插入新元素a1。
    #查看是否插入成功,从结果看已经插入。注意lindex的index值是0-based。
    #在e的后面插入新元素e2,从返回结果看已经插入成功。
    #再次查看是否插入成功。
    #在不存在的元素之前或之后插入新元素,该命令操作失败,并返回-1。
    在这里插入图片描述
  5. RPUSH/RPUSHX/RPOP/RPOPLPUSH:
    #删除该键,以便于后面的测试。
    #从链表的尾部插入参数中给出的values,插入顺序是从左到右依次插入。
    #通过lrange的可以获悉rpush在插入多值时的插入顺序。
    在这里插入图片描述
    Hash:
  6. HSET/HGET/HDEL/HEXISTS/HLEN/HSETNX:
    #给键值为myhash的键设置字段为filed1,值为stephen。
hset myhash filed1 'stephen'

#获取键值为myhash,字段为filed1的值。
在这里插入图片描述
#给键值为myhash的键设置字段为field1,值为stephen。

hset myhash field1 "stephen"
(integer) 1

#获取键值为myhash,字段为field1的值。
在这里插入图片描述
#myhash键中不存在field2字段,因此返回nil。
在这里插入图片描述
#给myhash关联的Hashes值添加一个新的字段field2,其值为liu。

hset myhash field2 "liu"

#获取myhash键的字段数量。
在这里插入图片描述
#判断myhash键中是否存在字段名为field1的字段,由于存在,返回值为1。
#删除myhash键中字段名为field1的字段,删除成功返回1。
#通过hsetnx命令给myhash添加新字段field1,其值为stephen,因为该字段已经被删除,所以该命令添加成功并返回1。
#由于myhash的field1字段已经通过上一条命令添加成功,因为本条命令不做任何操作后返回0。
在这里插入图片描述
2. HINCRBY:
#删除该键,便于后面示例的测试。
#准备测试数据,该myhash的field字段设定值5。
#给myhash的field字段的值加7,返回加后的结果。
#给myhash的field字段的值加-10,返回加后的结果。
在这里插入图片描述
3. HGETALL/HKEYS/HVALS/HMGET/HMSET:
#为该键myhash,一次性设置多个字段,分别是field1 = “hello”, field2 = “world”。
#获取myhash键的多个字段,其中field3并不存在,因为在返回结果中与该字段对应的值为nil。
#返回myhash键的所有字段及其值,从结果中可以看出,他们是逐对列出的。
#仅获取myhash键中所有字段的名字。
#仅获取myhash键中所有字段的值。
在这里插入图片描述

二、举例说明list和hash的应用场景,每个至少一个场景

Hash:可以作为购物车,其中用户id作为key,商品id作为field,商品数量作为value。
List:微博消息和微信公众号消息

三、配置redis的主从复制

将ip为192.168.150.34的机器作为主服务器,将ip为192.168.150.30的机器作为从服务器
前提:作为主服务器的一端安装好redis,然后完全克隆它并修改IP作为从服务器(为了方便起见)
1、设置主服务器的配置:

[root@localhost ~]# vim /etc/redis/redis.conf

在这里插入图片描述
2、设置从服务器的配置(在slaveof后面写主机ip,再写端口,而且端口必须写):

[root@localhost ~]# vim /etc/redis/redis.conf

在这里插入图片描述
3、然后重启redis服务:

systemctl restart redis

4、在master和slave分别执行info命令,查看输出信息 在master上写数据
Master:

在这里插入图片描述
在slave上读数据:
在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值