2 缓存数据库

[redis]

(HASH)司机sessionid和临时信息映射表

key: online-driver-[sessionid]

(司机临时状态表)

字段 字段名
field username "盖伦"
field orderid "orderid-xxxx-xxx-xxx-xxx-xxxx" or "NONE"

说明

(1) 这个key具有一定的过期时间,当每次访问此key的时候,重新生成过期时间,并且以最后一个访问开始定时。

如果sessionid存在,代表此用户已经登录,如果session不存在,那么就要求用户重新登录。

(2) orderid字段:

如果该司机处于ready状态:

乘客选择该司机,或者web应用服务器自动分配司机给一个用户给该司机,服务器会生成一个订单号,那么orderid会被设置该 唯一订单 号码。 格式如: "orderid-xxxx-xxx-xxx-xxx-xxxx"

否则,该字段被设置为"NONE"


乘客sessionid和临时信息映射表

key: online-user-[sessionid]

(乘客临时状态表)

字段 字段名
field username "德莱文"
field orderid "orderid-xxxx-xxx-xxx-xxx-xxxx" or "NONE"

说明

(1) 这个key具有一定的过期时间,当每次访问此key的时候,重新生成过期时间,并且以最后一个访问开始定时。

如果sessionid存在,代表此用户已经登录,如果session不存在,那么就要求用户重新登录。

(2) orderid字段:

如果乘客已经是waiting状态:

司机已经接单,服务器会生成一个订单号,那么orderid会被设置该 订单 号码。

格式如: "orderid-xxxx-xxx-xxx-xxx-xxxx" 否则,该字段被设置为"NONE"


(HASH)用户详细信息表

####key: OBO_USER_INFO_username

字段 字段名
field u_name "盖伦"
field tel "18310332312"
field email "[email protected]"
field id_card "210101176616363316"
field driver "yes"

(HASH)临时订单表

key: orderid-xxxx-xxx-xxx-xxx-xxxx

字段 字段名
field order_status "INIT" / "ACTIVE"(创建订单为INIT,当司机确定乘客已上车,更改为ACTIVE)
field passenger_sessionid "online-user-xxxxxxx"
field driver_sessionid "online-driver-xxxxxxx"
field create_order_time "2016-11-28 11:16:00"(订单创建时间)
field start_driving_time "2016-11-28 11:16:00"(真实乘坐起始时间)
field end_time "2016-11-28 12:08:00"(订单终止时间)
field src_address "北京西三旗百汇城"(原定出发地点)
field dst_address "北京西二旗软件园9号楼"(原定终点地址)
field src_longitude 1.0001231 (原定出发点经度)
field src_latitude 1.0001231 (原定出发点纬度)
field dst_longitude 1.0001231 (原定终点经度)
field dst_latitude 1.0001231 (原定终点纬度)
field RMB "32" (预计订单费用)
field src_address_real "北京西三旗百汇城"(实际出发地址)
field dst_address_real "北京西二旗软件园9号楼" (实际终点地址)
field src_longitude_real 1.0001231 (实际出发点经度)
field src_latitude_real 1.0001231 (实际出发点纬度)
field dst_longitude_real 1.0001231 (实际终点经度)
field dst_latitude_real 1.0001231 (实际终点纬度)
field RMB_real "39" (实际订单费用)
field ptemp_longitude 1.0001231 (乘客当前经度)
field ptemp_latitude 1.0001231 (乘客当前纬度)
field dtemp_longitude 1.0001231 (司机当前经度)
field dtemp_latitude 1.0001231 (司机当前唯独)
说明

ptemp_longitude,ptemp_latitude是当乘客处于waiting状态或者traveling状态,实时将当前坐标更新到此表中,主要供订单中的司机查看。

dtemp_longitude,dtemp_latitude是当司机出于cactching或者driving状态,实时将当前的坐标更新到此表中,主要供订单中的乘客查看。


(GEO-SortSet)ready司机坐标池

key: ONLINE_DRIVER_GEO_ZSET

member: sessionid

score: GEOHASH

如:

member: "online-driver-xxxx-xxx-xxx-xxx-xxxx" score:"3479099956230698"

说明

(1) 如果司机已经开始接单,并且处于就绪状态,那么司机就会每隔一小段时间(2s)向该表中更新自己当前的坐标。

(2) 一切非ready状态的司机,均不会在此表中记录。

如果一个司机已经确定接单,那么司机端应该主动,申请将自己的信息状态从此表中拆掉,确保其他乘客搜索不到自己。


(GEO-SortSet)waiting乘客坐标池

key: ONLINE_USER_GEO_ZSET

member: sessionid

score: GEOHASH

如:

member: "online-user-xxxx-xxx-xxx-xxx-xxxx" score:"3479099956230698"


相关GEOHASH解释 http://blog.jobbole.com/80633/

results matching ""

    No results matching ""