「Redis 笔记」数据类型

REmote DIctionary Server(Redis),一个 key-value 存储系统。

数据类型

Redis 支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

  • string

    • string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如 jpg 图片或者序列化的对象。
    • string 类型是 Redis 最基本的数据类型,一个键最大能存储 512MB。
    • 相关命令:set, get
      127.0.0.1:6379> set str1 hello
      OK
      127.0.0.1:6379> get str1
      "hello"
  • hash
    • hash 是键值对的集合。
    • 每个 hash 可以存储 2^32 - 1 个(超过 40 亿个)键值对。
    • 相关命令:hmset, hmget, hgetall
      127.0.0.1:6379> hmset hashmap1 name hiwangzi blog hiwangzi.com
      OK
      127.0.0.1:6379> hmget hashmap1 name
      1) "hiwangzi"
      127.0.0.1:6379> hgetall hashmap1
      1) "name"
      2) "hiwangzi"
      3) "blog"
      4) "hiwangzi.com"
  • list
    • list 是字符串列表,按插入顺序排序
    • 列表的最大长度为 2^32 - 1 个元素。
    • 相关命令:lpush, lrange
      127.0.0.1:6379> lpush list1 a b
      (integer) 2
      127.0.0.1:6379> lrange list1 0 100
      1) "b"
      2) "a"
      127.0.0.1:6379> lpush list1 c
      (integer) 3
      127.0.0.1:6379> lrange list1 0 2
      1) "c"
      2) "b"
      3) "a"
  • set
    • set 是字符串的无序集合。
    • 添加,删除和验证成员是否存在的时间O(1)复杂性。
    • set 的最大成员数量为 2^32 - 1 个元素。
    • 相关命令:sadd, smembers
      127.0.0.1:6379> sadd set1 a b
      (integer) 2
      127.0.0.1:6379> smembers set1
      1) "b"
      2) "a"
      127.0.0.1:6379> sadd set1 c
      (integer) 1
      127.0.0.1:6379> smembers set1
      1) "b"
      2) "c"
      3) "a"
      127.0.0.1:6379> sadd set1 a
      (integer) 0
      127.0.0.1:6379> smembers set1
      1) "b"
      2) "c"
      3) "a"
      
      # a 被添加了两次,但集合有唯一属性,所以只会存储一个。
  • zset
    • zset = sorted set
    • Redis可排序集合类似于Redis集合,是不重复的字符集合。 不同之处在于,排序集合的每个成员都与分数相关联,这个分数用于按最小分数到最大分数来排序的排序集合。虽然成员是唯一的,但分数值可以重复。
    • 相关命令:zadd, zrangebyscore
      redis 127.0.0.1:6379> zadd yiibaiset 0 redis
      (integer) 1
      redis 127.0.0.1:6379> zadd yiibaiset 0 mongodb
      (integer) 1
      redis 127.0.0.1:6379> zadd yiibaiset 1 sqlite
      (integer) 1
      redis 127.0.0.1:6379> zadd yiibaiset 1 sqlite
      (integer) 0
      redis 127.0.0.1:6379> ZRANGEBYSCORE yiibaiset 0 1000
      1) "mongodb"
      2) "redis"
      3) "sqlite"

参考

时间: 2024-08-26 07:01:05

「Redis 笔记」数据类型的相关文章

「Redis 笔记」常用命令

编号 命令 描述 1 DEL key 此命令删除一个指定键(如果存在). 2 DUMP key 此命令返回存储在指定键的值的序列化版本. 3 EXISTS key 此命令检查键是否存在. 4 EXPIRE key seconds 设置键在指定时间秒数之后到期/过期. 5 EXPIREAT key timestamp 设置在指定时间戳之后键到期/过期.这里的时间是Unix时间戳格式. 6 PEXPIRE key milliseconds 设置键的到期时间(以毫秒为单位). 7 PEXPIREAT

Redis笔记-List数据类型(四)

List类型及操作 List是一个链表结构,主要功能是push .pop.获取一个范围内的所有值等等,操作中key理解为链表的名字. Redis的list类型其实就是一个每个子元素都是String类型的双向链表.我们可以通过push.pop操作从链表的 头部或者尾问添加删除元素,这样list既可以作为栈,又可以作为队列. lpush 在key对应list的头部添加字符串元素 //先压入 world 再压入hello 127.0.0.1:6379> lpush mylist world (inte

「学习笔记」3.31代码学习

3月的最后一天,我的代码也学了一阵子了,一点进展没有是不可能的,确实有感觉到进步,只不过如果自己更专心一点,应该进步会更大,三月的最后一天.四月开始加油!!! 这两天发现了杭电ACM的PPT,所以决定按照PPT的顺序来刷题了,所以今天练习的都比较简单. 1090 A+B for Input-Output Practice(II) #encoding:utf8 #1090 A+B for Input-Output Practice(II) n=int(raw_input()) l=[] lst=[

「开发笔记」武侠世界

我打算开发一个游戏,关于武侠,关于世界. 是武侠和世界,武侠和世界并重,武侠是世界的主题,世界是武侠的空间. 因为看不到任何的商业前景,所以我决定一个人来完成整个的开发,自己策划,自己编程. 关于策划. 武侠会是绝对唯一的主题,人生来就是为了拳打南山猛虎,脚踢北海蛟龙. 世界是未知的,有什么样的玩家,就有什么样的世界. 一个原则,以最简单的规则来创造这个世界.所以,只要是能去掉的规则,都去掉.就像围棋一样的简单. 关于编程. 因为没多少玩家吧,网络部分我自己写个socket程序用libevent

「开发笔记」世界的设定

一个原则:永远不会出现玩家不能制造的物品. 世界随着玩家的参与而变得丰富多彩. 聚居点会根据繁荣度而变化,部落,村庄,城镇,都市. 系统会产生资源,比如花草树木,各种矿石.所有玩家制造的物品都会尽量的保持在系统中流通,系统会记住任何一个物品的来历. 系统会产生npc,主要是用来给玩家练级.npc的设定根据当前世界进程,比如最高的武功,而装备则是系统回收的玩家遗弃的. 也会有一些功能npc,比如部落的武师.铸剑师.制甲师和炼丹师. 关于世界的生成,还在策划之中.

Redis笔记-Hash数据类型(三)

Hash是一个string类型的field和value的映射表. 它的添加.删除操作都是0(1)(平均).hash特别适合用于存储对象. 相较于将对象的每个字段存成单个string类型,将一个对象存储在hash类型中 会占用更少的内存,并且可以更方便的存取整个对象. hset 设置hash field为指定值,如果key不存在,刚先创建 127.0.0.1:6379> hset user:001 name lijie (integer) 1 127.0.0.1:6379> hget user:

「开发笔记」武侠的设定

玩家的目的:拳打南山猛虎,脚踢北海蛟龙. 不管是自己去打,还是别人去踢,我们玩的目的就是让战斗力增强. 战斗力体现在4个方面: 战斗者自身的参数 兵器 防具 丹药 自身的参数只能依靠自己修炼,而另外3种则可以依靠其他玩家. 人体参数设定依照中华传统医学,奇经八脉. 武功设定则是中国传统武术,内练一口气,外练筋骨皮.讲究个精气神. 战斗模型减少随机数,更多的确定因素让事情变得简单. 兵器.防具和丹药,则随着世界建立的进程而不断的丰富.

「C语言」常量和变量的表示及应用

先发布,还在修改完善中.. 在程序运行中,其值不能改变的量成为常量.在基本数据类型中,常量可分为整型常量.实型常量.符号常量和字符型常量(包括字符常量和字符串常量),现分别介绍如下: 整型常量 即整常数,由一个或多个数字组成,可以带正负号 C语言中整型常量可用十进制.八进制和十六进制3种形式表示 十进制整数:由0~9数字组成,不能以0开始,没有前缀 八进制整数:以0为前缀,其后由0~7的数字组成,没有小数部分 十六进制整数:以0x或0X开头,其后由0~9的数字和a~f(或A~F字母组成) 另外长

「笔记」「ubuntu」mint个人shell样式脚本

alias ll='ls -al' use_color=false # Set colorful PS1 only on colorful terminals.# dircolors --print-database uses its own built-in database# instead of using /etc/DIR_COLORS.  Try to use the external file# first to take advantage of user additions.