《Redis实战之HashMap》要点:
本文介绍了Redis实战之HashMap,希望对您有用。如果有疑问,可以联系我们。
前言
在游戏服务器的设计过程中,涉及到用户游戏数据的存储和读取,使用MysqL对其进行操作在必定程度上会增加与数据库的交互,并且效率太低.在查询了资料后决定采用Redis中的HashMap对数据进行实时更新,利用定时任务机制将每个10分钟将Hashmap中的数据同步到数据库中.首先介绍一下Redis和HashMap:
Redis
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
HEXISTS
HEXISTS key field 查看工具是否存在该属性域
HGET
HGETALL
HKEYS
HVALS
HLEN
HMGET
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》讨论,分享您的想法,编程之家 jb51.cc为您提供专业教程。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。