[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"
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
#给键值为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"
- 栈: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,当队列中的数据为空时,会一直监听消息队列,直到获得消息
购物车
以用户id为key,商品id为field,商品数量为value,恰好构成了购物车的3个要素
主库: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
[root@localhost ~]# systemctl restart redis
[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"