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官网,谢谢阅读,希望对你有所帮助。

原文地址:https://www.cnblogs.com/enjoyitlife/p/11959362.html

时间: 2024-10-28 13:23:44

Redis数据类型:Hashes、Geo操作指令的相关文章

redis 的安装使用 数据类型 以及操作指令 一

安装 redis 到 /usr/目录下 我这里安装的是redis-3.2.9.tar.gz tar zxvf  redis-3.2.9.tar.gz  -C  /usr 然后进行 执行编译命令 make   执行安装  make install 进入redis目录   ll查看所有文件 将 redis.conf文件 移动到usr/local/redis/etc目录下 再进入redis/src 目录 将以下文件移动到 usr/local/redis/bin目录下  方便以后管理 此时进入 usr/

Redis数据类型:Sorted Sets操作指令

Redis数据类型:Sorted Sets操作指令 Sorted Sets常用操作指令 Sorted Sets,本质是一个有序的Sets,其实在原来的Sets集合中对每一个元素新增了一个属性Score,用于排序. ZADD 将指定的元素及Score添加到集合.如果集合中存在该元素,则更新其Score. 如果集合不存在,会先创建一个集合然后在添加元素及Score. 127.0.0.1:6379> ZADD sortset 1 name (integer) 1 ZRANGE 返回指定下标开始到结束下

redis 操作指令集合

redis是什么: Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets. redis是开源,BSD许可,高级的key-value存储系统. 可以用来存储字符串,哈希结构,链表,集合,因

系统学习redis之七——redis数据类型之zset数据类型及操作

sourted sets数据类型介绍 sorted set是set的一个升级版本,他在set的基础上增加了一个顺序属性.这一属性在修改元素的时候可以指定,每次指定后,zset会自动按照新的值调整顺序,是有序集合.可以理解为有两列的MySQL表,一列存value,一列存顺序.操作中key理解为zset的名字. zset数据类型方法 zadd:向指定集合zset中添加元素member,score用于排序,如果该元素已经存在,则更新其顺序 zrange:查看sourted sets里面的所有元素 zr

Redis五大数据类型的常用操作

在上一篇博文<centos安装redis>中,已经详细介绍了如何在centos上安装redis,今天主要介绍下Redis五大数据类型及其五大数据类型的相关操作. Redis支持五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sorted set:有序集合). 原文地址:https://www.cnblogs.com/toutou/p/redis_data_type.html

redis(Springboot中封装整合redis,java程序如何操作redis的5种基本数据类型)

平常测试redis操作命令,可能用的是cmd窗口 操作redis,记录一下 java程序操作reids, 操作redis的方法 可以用Jedis ,在springboot 提供了两种 方法操作 RedisTemplate 和StringRedisTemplate 两种方法的区别 可参考:https://blog.csdn.net/yifanSJ/article/details/79513179 当然 springboot 中也可以使用Jedis ,本次记录的是 如何使用RedisTemplate

缓存数据库-redis数据类型和操作(list)

转: 狼来的日子里! 奋发博取 缓存数据库-redis数据类型和操作(list) 一:Redis 列表(List) Redis列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素导列表的头部(左边)或者尾部(右边) 一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素). List操作,redis中的List在在内存中按照一个name对应一个List来存储.如图: 二:列表常用操作 1)lpush(name,values)  在name对应的l

redis数据类型三之set的操作命令

1.还是看看redis的官方文档:               如图示,redis set 是一种不重复的字符串集合,(它和 list 数据类型的差别就是在不重复上),执行 SADD指令可以添加新的元素到一个 set 集合中.也可以对 set 执行一些其他的操作,如判断一个给定的元素是否已经存在到呢个.(和 list 数据类型一样,是单 key 多值). 2.set 的一些操作指令: a.sadd/smembers/sismember: 追加或者新建一个 set 集合/查寻一个 set 集合/判

redis介绍、redis安装、redis持久化、redis数据类型

一:redis介绍 Redis和Memcached类似,也属于k-v数据存储Redis官网redis.io, 当前最新稳定版4.0.1支持更多value类型,除了和string外,还支持hash.lists(链表).sets(集合)和sorted sets(有序集合)redis使用了两种文件格式:全量数据(RDB)和增量请求(aof).全量数据格式是把内存中的数据写入磁盘,便于下次读取文件进行加载.增量请求文件则是把内存中的数据序列化为操作请求,用于读取文件进行replay得到数据,这种类似于m