Redis的五种数据类型(二)

 【上海校区】Redis的五种数据类型(二)
                                      5种数据类型:字符串、哈希、链表、集合、有序集合。
一、集合类型set
在Redis中,我们可以将Set类型看作为没有排序的字符集合,和List类型一样,我们也可以在该类型的数据值上
执行添加、删除或判断某一元素是否存在等操作。需要说明的是,这些操作的时间复杂度为O(1),即常量时间内完成次操作。
Set可包含的最大元素数量是4294967295。和List类型不同的是,Set集合中不允许出现重复的元素。
1、集合类型常用命令

(1)设置值  sadd key values[value1,value2…]
向set中添加数据,如果该key的值已有则不会重复添加
127.0.0.1:6379> sadd myset zhagnsan lisi wangwu
(integer) 3
127.0.0.1:6379>

(2)获取值】smembers key
获取set中所有的成员
127.0.0.1:6379> smembers myset
1) "wangwu"
2) "lisi"
3) "zhagnsan"
127.0.0.1:6379>

(3)删除值】 srem key members[member1、member2…]
删除set中指定的成员
127.0.0.1:6379> srem myset wangwu lisi
(integer) 2
127.0.0.1:6379> smembers myset
1) "zhagnsan"
127.0.0.1:6379>

二、有序集合sorted set
Redis有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。它用来保存需要排序的数据。
例如排行榜,一个班的语文成绩,一个公司的员工工资,一个论坛的帖子等。
有序集合中,每个元素都带有score(权重),以此来对元素进行排序。它有三个元素:key、member和score。
以语文成绩为例,key是考试名称(期中考试、期末考试等),member是学生名字,score是成绩。
有序集合有两大基本用途:排序和聚合
1、有序集合的常用命令

(1)设置值】zadd key score member[score1 member1,score2  member2…]
往有序集合中添加元素: score member
127.0.0.1:6379> zadd scores 60 chinese 100 english 80 math
(integer) 3
127.0.0.1:6379>

(2)获取集合成员数】zcard key
127.0.0.1:6379> zcard scores
(integer) 3
127.0.0.1:6379>

(3)查询集合中的元素】zrange key start stop [withscores]
127.0.0.1:6379> zrange scores 0 2
1) "chinese"
2) "math"
3) "english"
127.0.0.1:6379> zrange scores 0 2 withscores
1) "chinese"
2) "60"
3) "math"
4) "80"
5) "english"
6) "100"
127.0.0.1:6379> zrange scores 0 -1
1) "chinese"
2) "math"
3) "english"
127.0.0.1:6379>

(4)查询集合中的元素】 zrem key member[member1 ... ]
127.0.0.1:6379> zrem scores math english
(integer) 2
127.0.0.1:6379> zrange scores 0 -1
1) "chinese"
127.0.0.1:6379>

三、Redis的通用命令
(1)【查询key】 keys pattern
获取所有与pattern匹配的key,返回所有与该key匹配的keys。*表示任意一个或多个字符,?表示任意一个字符
127.0.0.1:6379> keys *
1) "stu"
2) "strs"
3) "mylist"
4) "scores"
5) "cityData"
6) "stus"
7) "myset"
8) "name"
127.0.0.1:6379> keys name
1) "name"
127.0.0.1:6379>

(2)【根据key值删除】del key1 key2…   删除指定key值的数据
127.0.0.1:6379> del company
(integer) 1

(3) 【判断key值是否存在】exists key
判断该key是否存在,1代表存在,0代表不存在
127.0.0.1:6379> exists compnay
(integer) 0
127.0.0.1:6379> exists mylist
(integer) 1
127.0.0.1:6379>

(4)【获取指定key的数据类型】type key
获取指定key的类型。该命令将以字符串的格式返回。 返回的字符串为string、list、set、hash,如果key不存在返回none
127.0.0.1:6379> type name
string
127.0.0.1:6379> type strs
list
127.0.0.1:6379> type stu
hash
127.0.0.1:6379> type myset
set
127.0.0.1:6379> type scores
zset

你可能感兴趣的:(redis)