《Redis實戰之HashMap》要點:
本文介紹了Redis實戰之HashMap,希望對您有用。如果有疑問,可以聯系我們。
在游戲服務器的設計過程中,涉及到用戶游戲數據的存儲和讀取,使用Mysql對其進行操作在必定程度上會增加與數據庫的交互,并且效率太低.在查詢了資料后決定采用Redis中的HashMap對數據進行實時更新,利用定時任務機制將每個10分鐘將Hashmap中的數據同步到數據庫中.首先介紹一下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)等類型.
相似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.snjht.com/jiaocheng/9603.html