Redis有哪几种数据类型



Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。(推荐学习:Redis视频教程)
String(字符串)
string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。
string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。
string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。
常用命令:set、get、decr、incr、mget等。
注意:一个键最大能存储512MB。
Hash(哈希)
Redis hash 是一个键值(key=>value)对集合;是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
每个 hash 可以存储 232 -1 键值对(40多亿)。
常用命令:hget、hset、hgetall等。
应用场景:存储一些结构化的数据,比如用户的昵称、年龄、性别、积分等,存储一个用户信息对象数据。
List(列表)
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
list类型经常会被用于消息队列的服务,以完成多程序之间的消息交换。
常用命令:lpush、rpush、lpop、rpop、lrange等。
列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。
Set(集合)
Redis的Set是string类型的无序集合。和列表一样,在执行插入和删除和判断是否存在某元素时,效率是很高的。集合最大的优势在于可以进行交集并集差集操作。Set可包含的最大元素数量是4294967295。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

应用场景:
1、利用交集求共同好友。
2、利用唯一性,可以统计访问网站的所有独立IP。
3、好友推荐的时候根据tag求交集,大于某个threshold(临界值的)就可以推荐。
常用命令:sadd、spop、smembers、sunion等。
集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。
zset(sorted set:有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。

sorted set是插入有序的,即自动排序。
常用命令:zadd、zrange、zrem、zcard等。
当你需要一个有序的并且不重复的集合列表时,那么可以选择sorted set数据结构。
应用举例:
(1)例如存储全班同学的成绩,其集合value可以是同学的学号,而score就可以是成绩。
(2)排行榜应用,根据得分列出topN的用户等。
更多redis相关技术知识,请访问Redis使用入门教程栏目学习!

  • Redis鏀寔鍝簺鏁版嵁缁撴瀯
    绛旓細锛堟帹鑽愬涔狅細redis鏁欑▼锛Redis鏀寔鎸佷箙鍖栧彧鏄畠鐨勪竴浠舵鍣紝鍙﹀锛屽畠閽堝涓嶅悓鐨勯渶姹備篃鎻愪緵浜嗗杈5绉嶆暟鎹瀛樺偍鏂瑰紡锛屼互鏈澶ф晥鐜囧疄鐜颁綘鐨勯渶姹傦紝涓嬮潰鎴戜滑鏉ュ垎鍒涓涓嬶細涓銆乻tring锛堝瓧绗︿覆锛塻tring鏄渶绠鍗曠殑绫诲瀷锛屼綘鍙互鐞嗚В鎴愪笌Memcached涓妯′竴鏍风殑绫诲瀷锛屼竴涓猭ey瀵瑰簲涓涓獀alue锛屽叾涓婃敮鎸佺殑鎿嶄綔涓嶮emcached鐨...
  • redis鏁版嵁缁撴瀯
    绛旓細閽堝杩5绉嶆暟鎹被鍨锛Redis鍦ㄥ簳灞傞兘鏄娇鐢ㄧ殑redisObject瀵硅薄琛ㄧず鐨勩俽edisObject鏈3涓噸瑕佺殑灞炴э細type銆乪ncoding銆乸tr銆傚叾涓紝type琛ㄧずvalue鐨勬暟鎹被鍨嬶紝涔熷氨鏄垜浠笂闈㈣鐨5绉嶆暟鎹被鍨嬶紙REDIS_STRING銆丷EDIS_LIST銆丷EDIS_HASH銆丷EDIS_SET銆丷EDIS_ZSET锛夛紱encoding琛ㄧずvalue鐨勭紪鐮侊紝鍗冲簳灞備娇鐢ㄤ簡鍝鏁版嵁缁撴瀯锛...
  • 濡備綍鏌ョ湅redis涓鐨鏁版嵁
    绛旓細2銆佹墦寮杞欢涔嬪悗锛屽苟鐐瑰嚮宸︿笂瑙掔殑銆愯繛鎺ュ埌Redis鏈嶅姟鍣ㄣ戙3銆佹墦寮鏂板鏈嶅姟鍣ㄧ獥鍙o紝杈撳叆鍚嶇О銆佸湴鍧銆佸瘑鐮侊紙濡傛灉Redis鏈嶅姟鍣ㄩ渶瑕佸瘑鐮侊級鍚庢祴璇曡繛鎺ュ苟淇濆瓨銆4銆佷繚瀛樺ソ涔嬪悗锛屽湪宸︿晶鎵撳紑鍒氬垰娣诲姞濂界殑杩炴帴锛屽鏋滆繛鎺ユ甯稿氨鍙互鐪嬪埌Redis鏈嶅姟鍣ㄧ殑鏁版嵁浜嗐傚彲浠ラ氳繃璇ュ伐鍏锋坊鍔犱慨鏀瑰垹闄ゆ暟鎹
  • redis浠涔绫诲瀷鏁版嵁搴?
    绛旓細灏嗚繖绉嶇儹鐐规暟鎹瓨鍒癛edis锛堝唴瀛橈級涓紝瑕佺敤鐨勬椂鍊欙紝鐩存帴浠庡唴瀛樺彇锛屾瀬澶х殑鎻愰珮浜嗛熷害鍜岃妭绾︿簡鏈嶅姟鍣ㄧ殑寮閿銆傦級浣跨敤Redis鏈鍝簺濂藉锛(1)閫熷害蹇紝鍥犱负鏁版嵁瀛樺湪鍐呭瓨涓紝绫讳技浜嶩ashMap锛孒ashMap鐨勪紭鍔垮氨鏄煡鎵惧拰鎿嶄綔鐨勬椂闂村鏉傚害閮芥槸O(1)(2)鏀寔涓板瘜鏁版嵁绫诲瀷锛屾敮鎸乻tring锛宭ist锛...
  • redis鏄敤鏉ュ共浠涔堢殑
    绛旓細鎷垮ぇ鍨嬬綉绔欐潵涓句釜渚嬪瓙锛屾瘮濡俛缃戠珯棣栭〉涓澶╂湁100涓囦汉璁块棶锛屽叾涓湁涓涓澘鍧椾负鎺ㄨ崘鏂伴椈銆傝鏄洿鎺ヤ粠鏁版嵁搴撴煡璇紝閭d箞涓澶╁氨瑕佸娑堣100涓囨鏁版嵁搴撹姹傘備笂闈㈠凡缁忚杩囷紝Redis鏀寔涓板瘜鐨鏁版嵁绫诲瀷锛屾墍浠ヨ繖瀹屽叏鍙互鐢≧edis鏉ュ畬鎴愶紝灏嗚繖绉嶇儹鐐规暟鎹瓨鍒癛edis锛堝唴瀛橈級涓紝瑕佺敤鐨勬椂鍊欙紝鐩存帴浠庡唴瀛樺彇锛屾瀬澶х殑鎻愰珮浜嗛熷害鍜...
  • redis閲岀殑鍩烘湰鏁版嵁绫诲瀷鏈夊嚑绉
    绛旓細string 瀛楃涓诧紙鍙互涓烘暣褰佹诞鐐瑰瀷鍜屽瓧绗︿覆锛岀粺绉颁负鍏冪礌锛塴ist 鍒楄〃锛堝疄鐜伴槦鍒,鍏冪礌涓嶅敮涓锛屽厛鍏ュ厛鍑哄師鍒欙級set 闆嗗悎锛堝悇涓嶇浉鍚岀殑鍏冪礌锛塰ash hash鏁e垪鍊硷紙hash鐨刱ey蹇呴』鏄敮涓鐨勶級sort set 鏈夊簭闆嗗悎
  • Redis搴曞眰鏁版嵁缁撴瀯
    绛旓細鍙互鐪嬪埌锛孲tring 绫诲瀷鐨勫簳灞傚疄鐜板彧鏈変竴绉嶆暟鎹缁撴瀯锛屼篃灏辨槸绠鍗曞姩鎬佸瓧绗︿覆銆傝 List銆丠ash銆丼et 鍜 Sorted Set 杩欏洓绉鏁版嵁绫诲瀷锛岄兘鏈変袱绉嶅簳灞傚疄鐜扮粨鏋勩傞氬父鎯呭喌涓嬶紝鎴戜滑浼氭妸杩欏洓绉嶇被鍨嬬О涓洪泦鍚堢被鍨嬶紝瀹冧滑鐨勭壒鐐规槸涓涓敭瀵瑰簲浜嗕竴涓泦鍚堢殑鏁版嵁銆備负浜嗗疄鐜颁粠閿埌鍊肩殑蹇熻闂紝Redis 浣跨敤浜嗕竴涓搱甯岃〃鏉ヤ繚瀛...
  • redis鏄叧绯诲瀷鏁版嵁搴撳悧
    绛旓細redis涓嶆槸鍏崇郴鍨嬫暟鎹簱銆傚叧绯诲瀷鏁版嵁搴擄紝鏄寚閲囩敤浜嗗叧绯绘ā鍨嬫潵缁勭粐鏁版嵁鐨勬暟鎹簱銆傚湪鍏崇郴鍨嬫暟鎹簱涓紝鏁版嵁琚粍缁囨垚涓绯诲垪鐨勮〃鏍硷紝琛ㄦ牸涓殑姣忎竴鍒楄绉颁负涓涓睘鎬э紝姣忎竴琛岀О涓轰竴涓褰曪紝璁板綍琛ㄧず瀹炰綋鐨勫疄渚嬨傚湪Redis涓锛屾瘡涓敭瀵瑰簲涓涓敮涓鐨勫笺傝櫧鐒禦edis鏀寔瀛樺偍澶绉嶆暟鎹被鍨锛屽寘鎷瓧绗︿覆銆佸垪琛ㄣ侀泦鍚堛佹湁...
  • 娣卞叆浜嗚ВRedis鎿嶄綔浜斿ぇ鏁版嵁绫诲瀷甯哥敤鍛戒护
    绛旓細鍥犱负鎴戜滑璁剧疆鐨勭紦瀛樻暟鎹竴鑸兘涓嶈兘鏄案涔呯殑锛岃繖涓椂鍊欏氨闇瑕佹垜浠湪瀛樺偍鏁版嵁鐨勬椂鍊欙紝灏变负鍏惰缃繃鏈熸椂闂淬俿tring绫诲瀷鏄Redis涓浜斿ぇ鍩烘湰鏁版嵁绫诲瀷涔嬩竴锛岃繖涔熸槸鏈甯镐娇鐢ㄥ埌鐨勪竴涓暟鎹被鍨嬶紝鎵鏈夊緢澶氬皬浼欎即浠Redis鐨璁よ瘑鍜屾搷浣滃氨浠呬粎鐨勫仠鐣欏湪浜嗗Redis鐨勬搷浣滃眰闈紝浣嗘槸浣犳槸鍚︾煡閬搒tring绫诲瀷涓殑鐩稿叧鍛戒护锛岃繕鏄湁闈炲父...
  • 浠ヤ笅鍏充簬redis鐨璇存硶姝g‘鐨勬槸
    绛旓細浠ヤ笅鍏充簬redis鐨璇存硶姝g‘鐨勬槸鍗曠嚎绋嬭姹傦紝鎵鏈夊懡浠や覆琛屾墽琛岋紝骞跺彂鎯呭喌涓嬩笉闇瑕佽冭檻鏁版嵁涓鑷存ч棶棰橈紱鏀寔澶绉嶆暟鎹缁撴瀯锛涙敮鎸佹寔涔呭寲鎿嶄綔锛屽彲浠ヨ繘琛宎of鍙妑db鏁版嵁鎸佷箙鍖栧埌纾佺洏锛屼粠鑰岃繘琛屾暟鎹浠芥垨鏁般俽edis绠浠嬶細redis鏄竴涓猭ey鈥攙alue瀛樺偍绯荤粺銆傚拰Memcached绫讳技锛屽畠鏀寔瀛樺偍鐨剉alue绫诲瀷鐩稿鏇村锛屽寘鎷瑂tring锛堝瓧绗︿覆...
  • 扩展阅读:redis面试必会6题经典 ... redis最佳配置 ... redis的8种数据类型 ... redis持久化 ... springcloud五大组件 ... 常见数据类型有哪5种 ... Redis配置大全 ... redis集群三种方式 ... redis的5种数据结构 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网