点一下关注吧!!!非常感谢!!持续更新!!!
目前已经更新到了:
Hadoop
HDFS
MapReduce
Hive
Flume
Sqoop
Zookeeper
HBase
Redis (正在更新)
章节内容
上一节我们完成了:
Redis 源码下载
Redis 编译、安装
Redis 配置修改
Redis 服务启动
背景介绍
这里是三台公网云服务器,每台 2C4G,搭建一个大数据的学习环境,供我学习。
之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。
2C4G 编号 h121
2C4G 编号 h122
2C2G 编号 h123
string 类型
常见操作
应用场景
- key和value是字符串
- 普通的赋值
- incr 用于乐观锁(incr递增数字)
- setnx 用于分布式锁(当value不存在时赋值)
比如使用 setnx:
root@h121:/usr/redis/bin# ./redis-cli 127.0.0.1:6379> setnx name wzk # 设置值 (integer) 1 127.0.0.1:6379> setnx name wzk-2 # 值存在则无法设置 (integer) 0 127.0.0.1:6379> get name # 还是刚才的 "wzk" 127.0.0.1:6379>
执行结果如下图:
list类型
list列表可以存储有序、可重复的元素,获取头部或者尾部附近的记录是最快的。
常见操作
表1
表2
应用场景
可以作为栈或者队列使用,列表有序。
可以用做各种表:比如用户表、商品表等:
127.0.0.1:6379> lpush list 1 2 3 9 4 5 # 生成列表 (integer) 6 127.0.0.1:6379> lrange list 1 10 # 遍历列表 1) "4" 2) "9" 3) "3" 4) "2" 5) "1" 127.0.0.1:6379> lpop list # 从左边取一个 "5" 127.0.0.1:6379> lpop list "4" 127.0.0.1:6379> lpop list "9" 127.0.0.1:6379>
set 类型
Set:无序、唯一
常见操作
应用场景
适用于不能够重复且不需要顺序的场景
比如:关注的用户列表,进行随机抽奖
127.0.0.1:6379> sadd set:1 a b c d e f g # 写入set (integer) 7 127.0.0.1:6379> smembers set:1 # 查看set中的值 1) "c" 2) "b" 3) "d" 4) "f" 5) "a" 6) "g" 7) "e" 127.0.0.1:6379> srandmember set:1 # 随机一个set中的值 "d" 127.0.0.1:6379> srandmember set:1 "e" 127.0.0.1:6379> srandmember set:1 "b" 127.0.0.1:6379> srandmember set:1 "e" 127.0.0.1:6379> srandmember set:1 "f" 127.0.0.1:6379>
sortedset (zset)类型
SortedSet(ZSet)有序集合:元素本身是无序不重复的,每个元素关联一个分数,可按分数排序,分数可重复。
常见操作
表1
表2
应用场景
可以按照分数值排序,适用于各种排行榜。
比如:点击排行榜、销量排行榜、关注排行榜等等
127.0.0.1:6379> zadd hit 100 item1 20 item2 30 item3 # zset (integer) 3 127.0.0.1:6379> zcard hit (integer) 3 127.0.0.1:6379> zscore hit item3 "30" 127.0.0.1:6379> zrevrange hit 0 -1 # 遍历zset 1) "item1" 2) "item3" 3) "item2" 127.0.0.1:6379>
hash类型
Redis Hash 是一个 string 类型的 field 和 value 的映射表,它提供字段和字段值的映射。
常见操作
应用场景
对象的存储,表数据的映射
127.0.0.1:6379> hmset user01 name wzk age 18 password 123 # hash对象 OK 127.0.0.1:6379> hgetall user01 # 取出对象中的内容 1) "name" 2) "wzk" 3) "age" 4) "18" 5) "password" 6) "123" 127.0.0.1:6379> hget user01 name # 获取对象的名字 "wzk" 127.0.0.1:6379>