NoSQL之redis主从复制、数据类型、应用场景
2022/1/26 2:04:31
本文主要是介绍NoSQL之redis主从复制、数据类型、应用场景,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、string list hash结构中,每个至少完成5个命令,包含插入 修改 删除 查询,list 和hash还需要增加遍历的操作命令
string命令操作
[root@localhost ~]# redis-cli 127.0.0.1:6379> APPEND k1 hello #该键并不存在,因此append命令返回当前Value的长度。 (integer) 5 127.0.0.1:6379> get k1 #通过get命令获取该键,以判断append的结果。 "hello" 127.0.0.1:6379> set k1 abc #将该键的Value设置为不能转换为整型的普通字符串。 OK 127.0.0.1:6379> get k1 #通过get命令获取该键,以判断append的结果。 "abc" 127.0.0.1:6379> APPEND k2 word #该键并不存在,因此append命令返回当前Value的长度。 (integer) 4 127.0.0.1:6379> MSET k1 hello k2 word #批量设置了k1和k2两个键。 OK 127.0.0.1:6379> mget k1 k2 #批量获取了k1和k2两个键的值。 1) "hello" 2) "word"
list命令操作
127.0.0.1:6379> del k1 #删除键 (integer) 1 #k1键并不存在,该命令会创建该键及与其关联的List,之后在将参数中的values从左到右依次插入。 127.0.0.1:6379> lpush k1 a b c d (integer) 4 #取链表中的全部元素,其中0表示第一个元素,-1表示最后一个元素。 127.0.0.1:6379> lrange k1 0 -1 1) "d" 2) "c" 3) "b" 4) "a" 127.0.0.1:6379> del k2 (integer) 1 #k2键此时并不存在,因此该命令将不会进行任何操作,其返回值为0。 127.0.0.1:6379> lpushx k2 e (integer) 0 #k1键此时已经存在,所以该命令插入成功,并返回链表中当前元素的数量。 127.0.0.1:6379> lpush k1 -e (integer) 5
hash命令操作
#给键值为user的键设置字段为name,值为jk。 127.0.0.1:6379> hset user name 'jk' (integer) 1 #获取键值为user,字段为name的值。 127.0.0.1:6379> hget user name "jk" #为该键user1,一次性设置多个字段, 127.0.0.1:6379> hmset user1 name smith age 20 OK #获取myhash键的多个字段 127.0.0.1:6379> hmget user1 name age 1) "smith" 2) "20" #判断myhash键中是否存在字段名为field1的字段,由于不存在,返回值为0。 127.0.0.1:6379> hexists user age (integer) 0 #判断myhash键中是否存在字段名为field1的字段,由于存在,返回值为1。 127.0.0.1:6379> hexists user1 name (integer) 1 #删除user键中字段名为name的字段,删除成功返回1。 127.0.0.1:6379> hdel user name (integer) 1 #仅获取myhash键中所有字段的名字。 127.0.0.1:6379> hkeys user1 1) "name" 2) "age"
2、举例说明list和hash的应用场景,每个至少一个场景
list应用场景
- 栈:LPUSH +LPOP -->FILO
先进后出原则:LPUSH从队列左边进入d,c,b,a, LPOP从队列左边出来a,b,c,d
- 队列: LPUSH+RPOP
先进先出原则:LPUSH从队列左边进入d,c,b,a, RPOP从队列右边出d,c,b,a
- 阻塞队列: LPUSH+BRPOP
LPUSH+BRPOP是在LPUSH+RPOP的基础上多了阻塞和等待的功能,
BRPOP实际上就是等于Blocking+RPOP,当队列中的数据为空时,会一直监听消息队列,直到获得消息
hash应用场景
购物车
以用户id为key,商品id为field,商品数量为value,恰好构成了购物车的3个要素
3、配置redis的主从复制
主库:192.168.159.136
从库:192.168.159.138
主库
[root@localhost ~]# vim /etc/redis.conf bind 192.168.159.136
从库
指定192.168.159.136为主库
[root@localhost ~]# vim /etc/redis.conf # slaveof <masterip> <masterport> slaveof 192.168.159.136 6379
主从库重启redis
[root@localhost ~]# systemctl restart redis
主库登录,info replication查看你信息,主库写入数据
[root@localhost ~]# redis-cli 127.0.0.1:6379> info replication # Replication role:master connected_slaves:1 slave0:ip=192.168.159.138,port=6379,state=online,offset=113,lag=0 master_repl_offset:113 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:2 repl_backlog_histlen:112 127.0.0.1:6379> set a hello OK
从库登录查看
[root@localhost ~]# redis-cli 127.0.0.1:6379> get a "hello"
这篇关于NoSQL之redis主从复制、数据类型、应用场景的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-08阿里云Redis项目实战入门教程
- 2024-11-08阿里云Redis资料:新手入门与初级使用指南
- 2024-11-08阿里云Redis教程:新手入门及实用指南
- 2024-11-07阿里云Redis学习入门:新手必读指南
- 2024-11-07阿里云Redis学习入门:从零开始的操作指南
- 2024-11-07阿里云Redis学习:初学者指南
- 2024-11-06阿里云Redis入门教程:轻松搭建与使用指南
- 2024-11-02Redis项目实战:新手入门教程
- 2024-10-22Redis入门教程:轻松掌握数据存储与操作
- 2024-10-22Redis缓存入门教程:快速掌握Redis缓存基础知识