微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Redis实战之HashMap

《Redis实战之HashMap》要点:
本文介绍了Redis实战之HashMap,希望对您有用。如果有疑问,可以联系我们。

前言

在游戏服务器的设计过程中,涉及到用户游戏数据的存储和读取,使用MysqL对其进行操作在必定程度上会增加数据库的交互,并且效率太低.在查询了资料后决定采用Redis中的HashMap对数据进行实时更新,利用定时任务机制将每个10分钟将Hashmap中的数据同步到数据库中.首先介绍一下Redis和HashMap:

Redis

Redis实战之HashMap

Redis

Remote Dictionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统.Redis一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API.它通常被称为数据布局服务器,因为值(value)可以是 字符串(String),哈希(Map),列表(list),集合(sets) 和 有序集合(sorted sets)等类型.

HashMap

相似C#中的dict类型或者C++中的hash_map类型.

Redis Hash对应Value内部实际就是一个HashMap,实际这里会有2种不同实现,这个Hash的成员比拟少时Redis为了节省内存会采用类似一维数组的方式来紧凑存储,而不会采用真正的HashMap结构,对应的value redisObject的encoding为zipmap,当成员数量增大时会自动转成真正的HashMap,此时encoding为ht.

利用场景

假设有多个用户及对应的用户信息,可以用来存储以用户ID为key,将用户信息以key-value的情势进行存储.

相关敕令

  • HDEL

    HDEL key field[field...] 删除工具的一个或几个属性域,不存在的属性将被忽略

  • HEXISTS

    HEXISTS key field 查看工具是否存在该属性

  • HGET

    HGET key field 获取工具中该field属性域的值

  • HGETALL

    HGETALL key 获取工具的所有属性域和值

  • HKEYS

    HKEYS key 获取工具的所有属性字段

  • HVALS

    HVALS key 获取工具的所有属性

  • HLEN

    HLEN key 获取工具的所有属性字段的总数

  • HMGET

    HMGET key field[field...] 获取工具的一个或多个指定字段的值

  • HSET

    HSET key field value 设置工具指定字段的值

  • HMSET

    HMSET key field value [field value ...] 同时设置工具中一个或多个字段的值

  • HSTRLEN

    HSTRLEN key field 返回工具指定field的value的字符串长度,如果该工具或者field不存在,返回0.

  • HSCAN

    HSCAN key cursor [MATCH pattern] [COUNT count] 相似SCAN命令

使用处景

127.0.0.1:6379> hset 101 name jack

(integer) 1

127.0.0.1:6379> hset 101 age 20

(integer) 1

127.0.0.1:6379> hset 101 sex male

(integer) 1

127.0.0.1:6379> hgetall 101

1) "name"

2) "jack"

3) "age"

4) "20"

5) "sex"

6) "male"

127.0.0.1:6379> hget 101 name

"jack"

PHP完成

Redis实战之HashMap

Redis实战之HashMap

Redis实战之HashMap

欢迎参与《Redis实战之HashMap》讨论,分享您的想法,编程之家 jb51.cc为您提供专业教程。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐