Redis学习2.1:Redis数据类型简介

环境:

Redis:3.2.10 ; CentOS 6/7

摘要说明:

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

本章主要对这五种数据类型的基础介绍和使用;

步骤:

1.String(字符串)

a.基础介绍

string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。

string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。

string类型是Redis最基本的数据类型,一个键最大能存储512MB。

b.常用语法

1>设置指定 key 的值(SET key value)

127.0.0.1:6379> set test 111111
OK

2>获取指定 key 的值(GET key )

127.0.0.1:6379> get test
"111111"

3>将给定 key 的值设为 value ,并返回 key 的旧值(old value)(GETSET key value)

127.0.0.1:6379> getset test 222222
"111111"

4>只有在 key 不存在时设置 key 的值(SETNX key value)

127.0.0.1:6379> setnx test 333333
(integer) 0

更多可参考:点击

2.Hash(哈希)

a.基础介绍

Redis hash 是一个键值(key=>value)对集合。

Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。

每个 hash 可以存储 232 -1 键值对(40多亿)

b.常用语法

下属中key表示一个hash的key即名称(唯一标识);field:value组成一组键值对作为hash的一个元素;

1>将哈希表 key 中的字段 field 的值设为 value (HSET key field value )

127.0.0.1:6379> hset myhash field1 111111
(integer) 1

2>获取存储在哈希表中指定字段的值(HGET key field )

127.0.0.1:6379> hget myhash field1
"111111"

3>查看哈希表 key 中,指定的字段是否存在(HEXISTS key field )

127.0.0.1:6379> hexists myhash field1
(integer) 1

4>为哈希表 key 中的指定字段的整数值加上增量 increment (HINCRBY key field increment )

127.0.0.1:6379> hset myhash field2 8
(integer) 1
127.0.0.1:6379> hget myhash field2
"8"
127.0.0.1:6379> hincrby myhash field2 -1
(integer) 7
127.0.0.1:6379> hget myhash field2
"7"

更多可参考:点击

3.List(列表)

a.基础介绍

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。

b.常用语法

下属中key表示一个list的key即名称(唯一标识);value作为List的一个元素;

1>在列表中添加一个或多个值(RPUSH key value1 [value2])

127.0.0.1:6379> rpush list1 11111
(integer) 1
127.0.0.1:6379> rpush list1 22222 33333
(integer) 3

2>移出并获取列表的第一个元素(LPOP key)

127.0.0.1:6379> lpop list1
"11111"
127.0.0.1:6379> lpop list1
"22222"
127.0.0.1:6379> lpop list1
"33333"

3>将一个或多个值插入到列表头部(LPUSH key value1 [value2])

127.0.0.1:6379> lpush list1 111111
(integer) 1
127.0.0.1:6379> lpush list1 222222 333333
(integer) 3
127.0.0.1:6379> lpop list1
"333333"

4>获取列表长度(LLEN key)

127.0.0.1:6379> llen list1
(integer) 2

更多可参考:点击

4.Set(集合)

a.基础介绍

Redis的Set是string类型的无序集合。

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

b.常用语法

下属中key表示一个set的key即名称(唯一标识); membe作为set的一个元素;

1>向集合添加一个或多个成员(SADD key member1 [member2])

127.0.0.1:6379> sadd set1 111111
(integer) 1
127.0.0.1:6379> sadd set1 222222 333333
(integer) 2

2>获取集合的成员数(SCARD key)

127.0.0.1:6379> scard set1
(integer) 3

3>返回给定所有集合的差集(SDIFF key1 [key2] )

127.0.0.1:6379> sadd set2 111111 222222 444444
(integer) 3
127.0.0.1:6379> sdiff set1 set2
1) "333333"

4>返回给定所有集合的交集(SINTER key1 [key2] )

127.0.0.1:6379> sinter set1 set2
1) "111111"
2) "222222"

5>返回集合中的所有成员(SMEMBERS key)

127.0.0.1:6379> smembers set1
1) "111111"
2) "222222"
3) "333333"

6>移除并返回集合中的一个随机元素(SPOP key )

127.0.0.1:6379> spop set1
"333333"
127.0.0.1:6379> smembers set1
1) "111111"
2) "222222"

更多可参考:点击

5.有序集合(sorted set)

a.基础介绍

Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,但分数(score)却可以重复。

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

b.常用语法

下属中key表示一个sorted set的key即名称(唯一标识); score+member作为sorted set的一个元素;

1>向有序集合添加一个或多个成员,或者更新已存在成员的分数(ZADD key score1 member1 [score2 member2])

127.0.0.1:6379> zadd ss1 1 111111
(integer) 1
127.0.0.1:6379> zadd ss1 2 222222
(integer) 1
127.0.0.1:6379> zadd ss1 1 222222 2 333333
(integer) 1

2>获取有序集合的成员数(ZCARD key)

127.0.0.1:6379> zcard ss1
(integer) 3

3>通过索引区间返回有序集合成指定区间内的成员(ZRANGE key start stop [WITHSCORES])

下标参数 start 和 stop 都以 0 为底,也就是说,以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推。

你也可以使用负数下标,以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。

127.0.0.1:6379> zrange ss1 0 0
1) "111111"
127.0.0.1:6379> zrange ss1 -1 0
(empty list or set)
127.0.0.1:6379> zrange ss1 0 -1
1) "111111"
2) "222222"
3) "333333"
127.0.0.1:6379> zrange ss1 0 1
1) "111111"
2) "222222"

4>返回有序集中,成员的分数值(ZSCORE key member)

127.0.0.1:6379> zscore ss1 111111
"1"

5>返回有序集中指定分数区间内的成员,分数从高到低排序(ZREVRANGEBYSCORE key max min [WITHSCORES] )

127.0.0.1:6379> zrevrangebyscore ss1 1 0
1) "222222"
2) "111111"

更多可参考:点击

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值