《Redis实战之HashMap》要点:
本文介绍了Redis实战之HashMap,希望对您有用。如果有疑问,可以联系我们。
在游戏服务器的设计过程中,涉及到用户游戏数据的存储和读取,使用Mysql对其进行操作在必定程度上会增加与数据库的交互,并且效率太低.在查询了资料后决定采用Redis中的HashMap对数据进行实时更新,利用定时任务机制将每个10分钟将Hashmap中的数据同步到数据库中.首先介绍一下Redis和HashMap:
Remote Dictionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统.Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API.它通常被称为数据布局服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型.
相似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》讨论,分享您的想法,维易PHP学院为您提供专业教程。
转载请注明本页网址:
http://www.vephp.com/jiaocheng/9603.html