redis 5种数据类型
1 字符串类型
2散列类型hash
3 列表类型
4 集合类型
5 有序集合类型
1 字符串类型
一般做一些复杂的计数功能的缓存
127.0.0.1:6379> set hehe hello hehe是key hello是values
OK
127.0.0.1:6379> get hehe
“hello”
追加命令 (向key的值后面追加数据)
127.0.0.1:6379> get hehe
“hello”
127.0.0.1:6379> append hehe word
(integer) 9
127.0.0.1:6379> get hehe
“helloword”
自增
127.0.0.1:6379> incr num (每执行一次该名利自增1)
(integer) 1
指定增长数量
127.0.0.1:6379> incrby num 10
(integer) 19
自减
127.0.0.1:6379> decr num
(integer) 18
指定较少数量
127.0.0.1:6379> decrby num 5
(integer) 13
自增小数浮点
127.0.0.1:6379> incrbyfloat key 0.1
“0.1”
127.0.0.1:6379> incrbyfloat key 0.1
“0.2”
一次创建多个key和value
127.0.0.1:6379> mset key1 v1 key2 v2
OK
一次查看多个key
127.0.0.1:6379> mget key1 key2
- “vi”
- “v2”
获取字符串长度
127.0.0.1:6379> strlen key1
(integer) 2
2散列类型
做单点登录的时候,就是用这种数据结构存储用户信息,以cookieId作为key,设置30分钟为缓存过期时间,能很好的模拟出类似session的效果。
127.0.0.1:6379> hset shouji name iphone
(integer) 1
127.0.0.1:6379> hset shouji col red
(integer) 1
127.0.0.1:6379> hset shouji price 8888
(integer) 1
127.0.0.1:6379> hgetall shouji
- “name”
- “iphone”
- “col”
- “red”
- “price”
- “8888”
3 列表类型
可以做简单的消息队列的功能。另外还有一个就是,可以利用lrange命令,做基于redis的分页功能,性能极佳,用户体验好。本人还用一个场景,很合适—取行情信息。就也是个生产者和消费者的场景。LIST可以很好的完成排队,先进先出的原则
从左侧插入数据
127.0.0.1:6379> lpush num 0
从右侧插入数据
127.0.0.1:6379> rpush num 1
查看列表长度
127.0.0.1:6379> llen num
(integer) 2
从左侧弹出数据(删除)
127.0.0.1:6379> lpop num
“0”
从右侧弹出数据
127.0.0.1:6379> rpop num
“2”
范围内读取数据
读取数据是从左侧开始读取 第一个的标记是0 -1表示右边第一个数据
127.0.0.1:6379> lrange num 0 -1
- “5”
- “4”
- “3”
- “2”
获取指定元素的值
左侧标记是从0开始依次类推 右侧是从-1开始-2 -3 依次类推
127.0.0.1:6379> lindex num 0
“5”
只保留范围内数据
127.0.0.1:6379> ltrim num 0 2
127.0.0.1:6379> lrange num 0 -1
- “5”
- “4”
- “3”
4 集合类型
所以可以做全局去重的功能 就是利用交集、并集、差集等操作,可以计算共同喜好,全部的喜好,自己独有的喜好等功能
应用场景:好友关注关系
sadd key 值
创建集合
127.0.0.1:6379> sadd jihe a b c
查看集合内容
127.0.0.1:6379> smembers jihe
判断集合元素是否存在
127.0.0.1:6379> sismember jihe a
1为真 0为假
集合差运算
127.0.0.1:6379> sadd jihe1 a b c
(integer) 3
127.0.0.1:6379> sadd jihe2 b c d
(integer) 3
127.0.0.1:6379> sdiff jihe1 jihe2
- “a”
运算方法:jihe1 减去 jihe2
集合交集运算
127.0.0.1:6379> sinter jihe1 jihe2 - “b”
- “c”
集合并集运算
127.0.0.1:6379> sunion jihe1 jihe2 - “a”
- “b”
- “c”
- “d”
5 有序集合类型
可以做排行榜应用,取TOP N操作
应用场景:热门文章
zadd key序列号值
127.0.0.1:6379> zadd youxu 81 b 82 c
获取元素的分数
127.0.0.1:6379> zscore youxu b
“81”
按照分数排列
127.0.0.1:6379> zrange youxu 0 1
- “b”
- “c”