复述中有哪些特殊的数据类型

  介绍

这期内容当中小编将会给大家带来有关复述中有哪些特殊的数据类型,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

<强>前言

里德在网络应用的开发中使用非常广泛,几乎所有的后端技术都会有涉及到复述的使用.Redis种除了常见的字符串字符串,字典散列,列表列表,集合,有序集合SortedSet等等之外,还有一些不常用的数据类型,这里着重介绍三个。下面话不多说了,来一起看看详细的介绍吧。

<强>位图

位图就是通过一个比特位来表示某个元素对应的值或者状态,其中就的关键是对应元素本身,实际上底层也是通过对字符串的操作来实现.Redis从2.2版本之后新增了setbit, getbit, bitcount等几个位图相关命令。虽然是新命令,但是本身都是对字符串的操作,我们先来看看语法:

SETBIT  key  offset 价值

其中抵消必须是数字,价值只能是0或1者,咋一看感觉没啥用处,我们先来看看位图的具体表示,当我们使用命令setbit键(0,2、5、9、12)1后,它的具体表示为:

bytebit0bit1bit2bit3bit4bit5bit6bit7byte010100100byte101001000

可以看出钻头的默认值是0,那么位图在实际开发的运用呢?这里举一个例子:储存用户在线状态。这里只需要一个键,然后把用户身份证作为抵消,如果在线就设置为1,不在线就设置为0。实例代码:

//设置在线状态   复述→美元setBit(& # 39;在线# 39;,,uid美元,1);//设置离线状态   复述→美元setBit(& # 39;在线# 39;,,uid美元,,0);//获取状态   美元$ isOnline =,复述,→getBit(& # 39;在线# 39;,,uid美元);//获取在线人数   isOnline 美元;=,复述,→美元bitCount(& # 39;在线# 39;);

<强> Geo

复述的地理特性在复述,3.2版本中推出,这个功能可以将用户给定的地理位置信息储存起来,并对这些信息进行操作.GEO的数据结构总共有六个命令:geoadd, geopos, geodist, georadius, georadiusbymember, gethash,这里着重讲解几个。

<强> 1。GEOADD

GEOADD  key  longitude  latitude  member  [longitude  latitude  member …)

将给定的空间元素(纬度,经度,名字)添加到指定的键里面。这些数据会以有序集合的形式被储存在键里面,从而使得像GEORADIUS和GEORADIUSBYMEMBER这样的命令可以在之后通过位置查询取得这些元素。例子:

redis>, GEOADD  Sicily  13.361389, 38.115556,“Palermo", 15.087269, 37.502669,“Catania"   (整数),2

<强> 2。GEOPOS

GEOPOS  key  member  [member …)

从键里面返回所有给定位置元素的位置(经度和纬度),例子:

redis>, GEOPOS  Sicily  Palermo  Catania  NonExisting   1),1),“13.361389338970184”;   ,2)“38.115556395496299“

<强> 3。GEODIST

GEODIST  key  member1  member2 (单位)

返回两个给定位置之间的距离。如果两个位置之间的其中一个不存在,那么命令返回空值。指定单位的参数单位必须是以下单位的其中一个:(默认为m)

m ,表示单位为米。
km 表示单位为千米。
mi 表示单位为英里。
ft 表示单位为英尺。

redis> GEODIST  Sicily  Palermo 卡塔尼亚   “166274.15156960039“

<强> 4。GEORADIUS

GEORADIUS  key  longitude  latitude  radius 米| |公里英尺| mi  [WITHCOORD], [WITHDIST], [WITHHASH], [ASC | DESC], [COUNT 计数]

以给定的经纬度为中心,返回键包含的位置元素当中,与中心的距离不超过给定最大距离的所有位置元素。距离单位和上面的一致,其中后面的选项:

WITHDIST:在返回位置元素的同时,将位置元素与中心之间的距离也一并返回。距离的单位和用户给定的范围单位保持一致。
WITHCOORD:将位置元素的经度和维度也一并返回。
WITHHASH:以52位有符号整数的形式,返回位置元素经过原始geohash编码的有序集合分值。这个选项主要用于底层应用或者调试,实际中的作用并不大。

redis>, GEORADIUS  Sicily  15, 37岁,200年,km  WITHDIST   1),1),“Palermo"   ,2)“190.4424”;   2),1),“Catania"   ,2)“56.4413“

复述中有哪些特殊的数据类型