redis数据结构

一、概述

        redis数据结构一般包括七种,即String、List、Set、Sorted set、Hash、GEO、Stream。

        要查看reids数据结构,可以通过命令:type key 来查询。

127.0.0.1:6379> type name
string

        下面对这几种数据结构进行介绍。

二、介绍

1、String:简单的键值对结构<String, String>,value也可以是数字。

        一般可以直接使用get、set方法来进行操作:

127.0.0.1:6379> set name hello
OK
127.0.0.1:6379> get name
"hello"
127.0.0.1:6379> type name
string

        使用场景:网站点击数、微博阅读数等

2、List:链表,类似于java的List

127.0.0.1:6379> Lpush list1 a b c d
(integer) 4
127.0.0.1:6379> type list1
list
127.0.0.1:6379> Lrange list1 0 1
1) "d"
2) "c"
127.0.0.1:6379>

        使用场景:好友列表、关注列表等

3、Set:一个集合,一堆不重复值的组合

127.0.0.1:6379> Sadd set1 1 2 3 3
(integer) 3
127.0.0.1:6379> Smembers set1
1) "1"
2) "2"
3) "3"

        使用场景:去重相关的场景

4、Sorted set:类似Set,但是是自动有序的,通过用户提供一个优先级(score)参数作为成员排序。

127.0.0.1:6379> Zadd sortedset1 1 a 2 b
(integer) 2
127.0.0.1:6379> Zrange sortedset1 0 1
1) "a"
2) "b"

        使用场景:排行榜、用户投票

5、Hash:是一个string类型的field和value的映射表

127.0.0.1:6379> Hset hash1 key 123
(integer) 1
127.0.0.1:6379> Hset hash1 key2 234
(integer) 1
127.0.0.1:6379> Hgetall hash1
1) "key"
2) "123"
3) "key2"
4) "234"
127.0.0.1:6379> Hget hash1 key
"123"

        使用场景:缓存登录账户、缓存码表等

        备注:通过例子可以看出,Hash和String还是不一样的。

6、GEO:3.2版本开始对GEO(地理位置)的支持

127.0.0.1:6379> GEOADD geo1 26.215423 36.542134 "address1" 26.335487 36.145278 "address2"
(integer) 2
127.0.0.1:6379> GEODIST geo1 "address1" "address2"
"45432.4893"

        使用场景:LBS(Location Based Service)基于位置的服务

7、Stream:5.0版本开始的流,类似MQ,提供分组、订阅功能。

127.0.0.1:6379> XADD stream1 1 key1 aaa
"1-0"
127.0.0.1:6379> XREAD COUNT 1 STREAMS stream1 0-0
1) 1) "stream1"
   2) 1) 1) "1-0"
         2) 1) "key1"
            2) "aaa"

        使用场景:生产者消费者场景,类似MQ

        备注:XREAD方法并不会自动删除消息,只会读取消息,删除需要执行XDEL命令。

 

三、redis使用备注:

1、生产环境下不要使用key *命令,因为这会遍历所有值,导致服务卡死。

2、memcache的性能要高于redis。

3、redis官网:https://redis.io

4、不要暴露给互联网,因为有安全漏洞。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值