点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

  • Hadoop
  • HDFS
  • MapReduce
  • Hive
  • Flume
  • Sqoop
  • Zookeeper
  • HBase
  • Redis (正在更新)

章节内容

上一节我们完成了:

  • Redis 源码下载
  • Redis 编译、安装
  • Redis 配置修改
  • Redis 服务启动

背景介绍

这里是三台公网云服务器,每台 2C4G,搭建一个大数据的学习环境,供我学习。
之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。

  • 2C4G 编号 h121
  • 2C4G 编号 h122
  • 2C2G 编号 h123

大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图_redis

string 类型

常见操作

大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图_list_02

应用场景

  • 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>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

执行结果如下图:

大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图_redis_03

list类型

list列表可以存储有序、可重复的元素,获取头部或者尾部附近的记录是最快的。

常见操作

表1

大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图_数据库_04


表2

大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图_list_05

应用场景

可以作为栈或者队列使用,列表有序。
可以用做各种表:比如用户表、商品表等:

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>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

set 类型

Set:无序、唯一

常见操作

大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图_redis_06

应用场景

适用于不能够重复且不需要顺序的场景
比如:关注的用户列表,进行随机抽奖

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>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.

sortedset (zset)类型

SortedSet(ZSet)有序集合:元素本身是无序不重复的,每个元素关联一个分数,可按分数排序,分数可重复。

常见操作

表1

大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图_哈希算法_07


表2

大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图_数据库_08

应用场景

可以按照分数值排序,适用于各种排行榜。
比如:点击排行榜、销量排行榜、关注排行榜等等

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>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

hash类型

Redis Hash 是一个 string 类型的 field 和 value 的映射表,它提供字段和字段值的映射。

大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图_数据库_09

常见操作

大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图_redis_10

应用场景

对象的存储,表数据的映射

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>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.