redis五种基本的数据类型

1.字符串(String)

1.1用法

127.0.0.1:6379> set name zhangsan // 1.设置key为name的值为zhangsan
OK
127.0.0.1:6379> get name // 2.获取key为name的值
"zhangsan"
127.0.0.1:6379> del name // 3.删除key为name的值
(integer) 1
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> exists name // 4.判断key为name是否存在
(integer) 0
127.0.0.1:6379> set count 1 // 5.设置key为count的值为1
OK
127.0.0.1:6379> type count // 6.判断类型
string
127.0.0.1:6379> ttl count // 7.查看生存时间,-1则代表未设置生存时间
(integer) -1
127.0.0.1:6379> decrby count 1 // 8.减1
(integer) 0
127.0.0.1:6379> get count 
"0"
127.0.0.1:6379> incrby count 1 // 9.加1
(integer) 1
127.0.0.1:6379> get count
"1"
127.0.0.1:6379> decr count // 10.自减
(integer) 0
127.0.0.1:6379> get count
"0"
127.0.0.1:6379> incr count // 11.自增
(integer) 1
127.0.0.1:6379> get count
"1"
127.0.0.1:6379> mget name count // 12.获取多个key
1) (nil)
2) "1"
127.0.0.1:6379> expire count 10 // 13.设置过期时间
(integer) 1
127.0.0.1:6379> get count
"1"
127.0.0.1:6379> get count
(nil)

1.2场景

  1. 计数器,网站访问人数、文章访问量等
  2. 存放登录的验证码
  3. 共享用户session
  4. 缓存

2.列表(List)

有序并且可以在头节点或者尾节点进行删除和插入操作,支持存储重复元素并且可以通过下标取值

2.1用法

127.0.0.1:6379> lpush list1 v1 // 1.往头插入元素
(integer) 1
127.0.0.1:6379> lpush list1 v2 // 2.往头插入元素
(integer) 2
127.0.0.1:6379> llen list1 // 3.获取列表的长度
(integer) 2
127.0.0.1:6379> lpop list1 // 4.从头节点移出元素
"v2"
127.0.0.1:6379> lpop list1
"v1"
127.0.0.1:6379> lpop list1
(nil)
127.0.0.1:6379> lpush list1 v1  
(integer) 1
127.0.0.1:6379> lpush list1 v2
(integer) 2
127.0.0.1:6379> llen list1
(integer) 2
127.0.0.1:6379> rpush list1 v0 // 5.从尾插入
(integer) 3
127.0.0.1:6379> lrange list1 0 -1 // 6.获取指定下标元素
1) "v2"
2) "v1"
3) "v0"

2.2场景

  1. 最长见的场景就是消息队列,通过头插尾删实现队列功能

3.集合(Set)

不允许存放重复的元素,并且存放的元素位置是无序的,可以进行差集、交集、并集等操作

3.1用法

127.0.0.1:6379> sadd set a b c d // 1.存入多个值
(integer) 4
127.0.0.1:6379> smembers set // 2.全部遍历
1) "c"
2) "a"
3) "d"
4) "b"
127.0.0.1:6379> sismember set a // 3.判断是否存在
(integer) 1
127.0.0.1:6379> sismember set f 
(integer) 0
127.0.0.1:6379> sadd set a
(integer) 0
127.0.0.1:6379> sadd set f
(integer) 1
127.0.0.1:6379> scard set // 4.返回集合长度
(integer) 5
127.0.0.1:6379> srem set m // 5.移除元素
(integer) 0
127.0.0.1:6379> srem set f
(integer) 1
127.0.0.1:6379> sadd set1 a b c
(integer) 3
127.0.0.1:6379> sdiff set set1 // 6.返回差集
1) "d"
127.0.0.1:6379> sinter set set1 // 7.返回交集
1) "c"
2) "a"
3) "b"
127.0.0.1:6379> sunion set set1 // 8.返回并集
1) "b"
2) "d"
3) "a"
4) "c"

3.2场景

  1. 标签、共同喜好等用户信息归类到同一个集合
  2. 共同好友,因为集合可以进行交集、并集和差集的操作

4.有序集合(Sorted Set)

支持有序存储(给每个元素设置了一个分数作为排序的依据),但是不支持存储重复元素

4.1用法

127.0.0.1:6379> zadd rank 1 beijing // 1.存储元素
(integer) 1
127.0.0.1:6379> zadd rank 1 shanghai
(integer) 1
127.0.0.1:6379> zadd rank 2 shenzhen
(integer) 1
127.0.0.1:6379> zadd rank 3 guangzhou
(integer) 1
127.0.0.1:6379> zrange rank 0 -1 // 2.遍历集合
1) "beijing"
2) "shanghai"
3) "shenzhen"
4) "guangzhou"
127.0.0.1:6379> zadd rank 0 jinan
(integer) 1
127.0.0.1:6379> zrange rank 0 -1
1) "jinan"
2) "beijing"
3) "shanghai"
4) "shenzhen"
5) "guangzhou"
127.0.0.1:6379> zrem rank jinan // 3.移除元素
(integer) 1
127.0.0.1:6379> zcard rank // 4.获取集合长度
(integer) 4
127.0.0.1:6379> zrange rank 0 3 withscores // 5.获取元素分数在0到3的集合元素
1) "beijing"
2) "1"
3) "shanghai"
4) "1"
5) "shenzhen"
6) "2"
7) "guangzhou"
8) "3"
127.0.0.1:6379> zrevrange rank 0 3 withscores  // 6.获取元素分数在0到3的集合元素并且降序
1) "guangzhou"
2) "3"
3) "shenzhen"
4) "2"
5) "shanghai"
6) "1"
7) "beijing"
8) "1"

4.2场景

  1. 排行榜

5.哈希(Hash)

键值对的存储

5.1用法

127.0.0.1:6379> hset user name zhangsan // 1.存值
(integer) 1
127.0.0.1:6379> hset user age 18
(integer) 1
127.0.0.1:6379> hget user name // 2.取值
"zhangsan"
127.0.0.1:6379> hmget user name age // 3.取hash多个key
1) "zhangsan"
2) "18"
127.0.0.1:6379> hgetall user // 4.获取hash全部key和value
1) "name"
2) "zhangsan"
3) "age"
4) "18"
127.0.0.1:6379> hlen user  // 5.获取长度
(integer) 2
127.0.0.1:6379> hexists user name // 6.判断属性是否存在
(integer) 1
127.0.0.1:6379> hkeys user  // 7.获取全部key
1) "name"
2) "age"
127.0.0.1:6379> hvals user // 8.获取全部value
1) "zhangsan"
2) "18"
127.0.0.1:6379> hset user name lisi // 9.一样的key会覆盖原来的值
(integer) 0
127.0.0.1:6379> hvals user
1) "lisi"
2) "18"

5.2场景

  1. 适合存储对象信息,用户信息(age,name,sex),文章(标题,内容,作者,时间)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值