127.0.0.1:6379> hset user name zhangsan # 使用 hset 为 user 添加一个键值对 name = zhangsan (integer) 1 127.0.0.1:6379> hset user age 18 # 使用 hset 为 user 添加一个键值对 age = 18 (integer) 1 127.0.0.1:6379> hget user name # 使用 hget 获取 user 中键为 name 的值 "zhangsan" 127.0.0.1:6379> hget user age # 使用 hget 获取 user 中键为 age 的值 "18" 127.0.0.1:6379> hgetall user # 使用 hgetall 获取 user 中所有的键值对 1) "name" 2) "zhangsan" 3) "age" 4) "18" 127.0.0.1:6379> hmset user name lisi age 20 # 使用 hmset 为 user 批量添加键值对 OK 127.0.0.1:6379> hmget user name age # 使用 hmget 批量获取 user 中键的值 1) "lisi" 2) "20" 127.0.0.1:6379> hdel user name# 使用 hdel 删除 user 一个(或多个)键值对 (integer) 1 127.0.0.1:6379> hexists user name # 使用 hexists 判断 user 中 name 元素是否存在 (integer) 0 127.0.0.1:6379> hexists user age # 使用 hexists user 中 age 元素是否存在 (integer) 1 127.0.0.1:6379> hkeys user # 使用 hkeys 只获得 user 中的字段名 1) "age" 127.0.0.1:6379> hvals user # 使用 hvals 只获得 user 中的字段值 1) "20" 127.0.0.1:6379> hlen user # 使用 hlen 获得 user 中字段(键值对)数量 (integer) 1
列表类型(List)
举例应用场景
微博某个大v的粉丝就可以以list的格式放在redis里去缓存
key=某大v value=[zhangsan, lisi, wangwu]
商品,博客,文章下面的评论列表。
redis list介绍
在 Redis 中的 List 类型,其内部使用的是双向链表实现的,所以它具有双向链表具有的相关特性。其常用操作就是向列表两端添加或删除元素。这使得 List 既可以当做栈(先进后出)来使用,也可以当做队列(先进先出)来使用。
127.0.0.1:6379> lpush list 1 2 3 4 # 使用 lpush 将 1 2 3 4 依次插入到 list 的左端 (integer) 4 127.0.0.1:6379> rpush list 5 6 7 8 # 使用 rpush 将 5 6 7 8 依次插入到 list 的右端 (integer) 8 127.0.0.1:6379> lrange list 0 -1 # 使用 lrange 获取 指定区间上所有值(0 -1 表示获取全部) 1) "4" 2) "3" 3) "2" 4) "1" 5) "5" 6) "6" 7) "7" 8) "8" 127.0.0.1:6379> lpop list # 使用 lpop 弹出 list 左端的一个值,并返回弹出的值 "4" 127.0.0.1:6379> lpop list "3" 127.0.0.1:6379> rpop list # 使用 rpop 弹出 list 右端的一个值,并返回弹出的值 "8" 127.0.0.1:6379> rpop list "7" 127.0.0.1:6379> lrange list 0 -1 1) "2" 2) "1" 3) "5" 4) "6" 127.0.0.1:6379> llen list # 使用 llen 获取 list 中元素个数 (integer) 4
集合类型(Set)
举例应用场景
可以基于set玩儿交集、并集、差集的操作
可以把两个人的粉丝列表整一个交集,看看俩人的共同好友是谁
相关操作命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14
127.0.0.1:6379> sadd set a b c 1 2 3 # 使用 sadd 将 a b c 1 2 3 添加到 set 集合中 (integer) 6 127.0.0.1:6379> sadd set a b 2 # 添加重复元素,返回成功添加 0 个,说明 set 中元素不重复 (integer) 0 127.0.0.1:6379> srem set a b 1 # 使用 srem 删除 set 集合中的 a b 1 三个元素 (integer) 3 127.0.0.1:6379> smembers set # 使用 smembers 获取 set 集合中所以元素 1) "2" 2) "c" 3) "3" 127.0.0.1:6379> sismember set a # 使用 sismember 判断 a 是否在 set 集合中 (integer) 0 127.0.0.1:6379> sismember set c # 使用 sismember 判断 c 是否在 set 集合中 (integer) 1