zoukankan      html  css  js  c++  java
  • Redis数据类型:Hashes、Geo操作指令

    Redis数据类型:Hashes、Geo操作指令

    Hashes常用操作指令

    Redis Hashes是一个键值对的映射表,最对能存储2^32-1(约40亿)个键值对。

    HSET HGET

    HSET:将键值对存储到哈希表中,如果哈希表不存在,新建一个然后在将键值对存储进去。

    HGET: 根据Key值获取value。

    127.0.0.1:6379> ZADD sortset 1 name
    (integer) 1
    127.0.0.1:6379> HSET myhash name zhangsan
    (integer) 1
    127.0.0.1:6379> HGET myhash name
    "zhangsan"
    

    HDEL

    删除哈希表的指定Key 和Vlaue 键值对,成功返回1,Key值不存在返回0.

    127.0.0.1:6379> HDEL myhash  name
    (integer) 1
    127.0.0.1:6379> HDEL mysha name2
    (integer) 0
    

    HEXISTS

    判断是否存在Key。成功返回1,不存在返回0。

    127.0.0.1:6379> HEXISTS myhash age
    (integer) 1
    127.0.0.1:6379> HEXISTS myhash name
    (integer) 0
    
    

    HGETALL

    返回哈希表中所有的KEY和VALUE。

    127.0.0.1:6379> HGETALL myhash
    1) "age"
    2) "18"
    3) "name"
    4) "lisi"
    

    HINCRBY HINCRBYFLOAT

    为哈希表 key 中的指定字段的整数值加上增量 increment。HINCRBYFLOAT是增加浮点类型。

    127.0.0.1:6379> HINCRBY myhash age 2
    (integer) 20
    

    HKEYS

    返回哈希表中的所有Keys。

    127.0.0.1:6379> HKEYS myhash
    1) "age"
    2) "name"
    

    HMGET

    批量获取哈希表中多个Key对应的value值。

    127.0.0.1:6379> HMGET myhash age name
    1) "20"
    2) "lisi"
    

    HMSET

    批量设置哈希表中多个键键值对。

    127.0.0.1:6379> HMSET myhash sex 0  prov beijing
    OK
    127.0.0.1:6379> HMGET myhash age name sex prov 
    1) "20"
    2) "lisi"
    3) "0"
    4) "beijing"
    

    HSCAN

    和ZSCAN、SCAN一样都是迭代查询。可以理解分分页查询,对键值对较多的情况下比较适用。

    127.0.0.1:6379> HSCAN myhash 0
    1) "0"
    2) 1) "age"
       2) "20"
       3) "name"
       4) "lisi"
       5) "sex"
       6) "0"
       7) "prov"
       8) "beijing"
    

    HSETNX

    类似SETNX,新值可以写入并返回1,如果存在相同的KEY,则返回0。

    127.0.0.1:6379> HSETNX myhash age 22
    (integer) 0
    127.0.0.1:6379> HSETNX myhash  id 121
    (integer) 1
    

    HSTRLEN

    返回哈希表中KEY值对应的Vaue长度。

    127.0.0.1:6379> HSTRLEN myhash id
    (integer) 3
    

    Geo 地理位置指令

    可以利用Redis的Geo指令来获取附近的好友这种需要计算地理位置的需求。

    GEOADD

    127.0.0.1:6379> GEOADD china 116.231700 39.542700 "tiananmen"
    (integer) 1
    127.0.0.1:6379> GEOADD china 116.460000 39.920000 'beijing'
    (integer) 1
    127.0.0.1:6379> 
    

    GEORADIUS

    以给定的经纬度为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离的所有位置元素。

    127.0.0.1:6379> GEORADIUS china 116.0000 39.0000 100 km WITHCOORD
    1) 1) "tiananmen"
       2) 1) "116.2317010760307312"
          2) "39.54270072760818522"
    

    GEORADIUSBYMEMBER

    类似GEORADIUS,区别是GEORADIUS是指定的经纬度为坐标中心查找符合条件的元素,而GEORADIUSBYMEMBER是指定的成员的经纬度为坐标中心进行查找符合条件的元素。

    127.0.0.1:6379> GEORADIUSBYMEMBER china tiananmen 50 km
    1) "tiananmen"
    2) "beijing"
    

    GEOPOS

    返回指定元素的经纬度。

    127.0.0.1:6379> GEOPOS china tiananmen
    1) 1) "116.2317010760307312"
       2) "39.54270072760818522"
    

    GEOHASH

    ]Geohash is a public domain geocode system invented in 2008 by Gustavo Niemeyer[1] and (similar work in 1966) G.M. Morton[2], which encodes a geographic location into a short string of letters and digits. It is a hierarchical spatial data structure which subdivides space into buckets of grid shape, which is one of the many applications of what is known as a Z-order curve, and generally space-filling curves.。--wiki

    返回一个或多个元素的标注GeoHash。GeoHash是一个标准的公共的地理位置系统。

    127.0.0.1:6379> GEOHASH china tiananmen
    1) "wx48uyt2fv0"
    

    GEODIST

    返回元素之间的距离。点对点。

    127.0.0.1:6379> GEODIST china tiananmen beijing km
    "46.2867"
    

    以上就是Redis中哈希表和地理位置的常用操作指令了,更多其他指令可以参考官网,Redis官网,谢谢阅读,希望对你有所帮助。

  • 相关阅读:
    Windows下安装MongoDB
    介绍了MongoDB在32位Windows7下的安装以及一些简单应用
    简单的实例来理解WCF 数据服务
    对缓存的思考——提高命中率
    如何在安装过程中部署DevExpress控件
    [WCF REST] 解决资源并发修改的一个有效的手段:条件更新(Conditional Update)
    MEF实现IoC
    Lucene索引分析工具Luke.Net 0.5升级版 (兼容Lucene.Net 2.9.4.1)
    Mongodb在windows下面作为服务启动 出现“服务没有响应控制功能”
    写自己的ASP.NET MVC框架
  • 原文地址:https://www.cnblogs.com/enjoyitlife/p/11959362.html
Copyright © 2011-2022 走看看