redis的五中常用类

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

String类型

string是Redis最基本的数据类型,一个 key 对应一个 value,string 类型的值最大能存储 512MB。

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

序列命令描述案例
1set key value设置指定 key 的值set fruit apple
2get key获取指定 key 的值。get fruit
3mget key1 key2 … keyn获取所有(一个或多个)给定 key 的值。mget fruit food
4setnx key value只有在 key 不存在时设置 key 的值。setnx lock 任意字符串
5strlen key返回 key 所储存的字符串值的长度。strlen food
6incr key将 key 中储存的数字值增一。incr money
7decr key将 key 中储存的数字值减一。decr money

setnex : 如果key存在,返回0, 如果key不存在,返回1。

实例:

127.0.0.1:6379> setnx drink milk
(integer) 1
127.0.0.1:6379> setnx drink milk
(integer) 0
127.0.0.1:6379> 

注意:一个键最大能存储 512MB。

判断一个key是否存在?

  • keys *
  • get key
  • setnx key OK

Hash(哈希)

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

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

序列命令描述
1hdel key field1 field2… fieldn删除一个或多个哈希表字段
2hexist key field查看哈希表 key 中,指定的字段是否存在
3hget key field获取存储在哈希表中指定字段的值
4hgetall key获取在哈希表中指定 key 的所有字段和值
5hincrby key field increment为哈希表 key 中的指定字段的整数值加上增量 increment
6hkeys key获取所有哈希表中的字段(field)
7hlen key获取哈希表中字段的数量
8hmget key field1 field2获取所有给定字段的值
9hset key field value将哈希表 key 中的字段 field 的值设为 value 。
10hsetnx key field value只有在字段 field 不存在时,设置哈希表字段的值。
11hvals key获取哈希表中所有值

实例:

127.0.0.1:6379> del user
(integer) 1
127.0.0.1:6379> hset user name "Amy" age "22"
(integer) 2
127.0.0.1:6379> hget user name
"Amy"
127.0.0.1:6379> hget user age
"22"
127.0.0.1:6379> 

list(列表)

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

序列命令描述
1llen key获取列表长度
2lpush key value1… value2将一个或多个值插入到列表头部
3lpop key移出并获取列表的第一个元素
4lrange key start stop获取列表指定范围内的元素
5lrem key count value移除列表元素
6rpush key value1… value2尾部添加
7rpop key [count]尾部移除[count]元素

实例:

127.0.0.1:6379> del user
(integer) 1
127.0.0.1:6379> lpush user Amy
(integer) 1
127.0.0.1:6379> lpush user Tom Jack
(integer) 3
127.0.0.1:6379> lrange user 0 5
1) "Jack"
2) "Tom"
3) "Amy"
127.0.0.1:6379> 

set(集合)

Redis 的 Set相当于 Java 语言里面的 HashSet, 是 string 类型的无序集合,它内部的键值对是无序的唯一的。这就意味着集合中不能出现重复的数据。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

当集合中最后一个元素移除之后,数据结构自动删除,内存被回收。

序列命令描述
1sadd key member1… member2向集合添加一个或多个成员
2scard key获取集合的成员数
3SMEMBERS key返回集合中的所有成员
4sismember key member判断member元素是否是集合key的成员
5spop key移除并返回集合中的一个随机元素

实例:

127.0.0.1:6379> del user
(integer) 1
127.0.0.1:6379> sadd user Amy Tom Jack Cindy
(integer) 4
127.0.0.1:6379> scard user
(integer) 4
127.0.0.1:6379> SMEMBERS user
1) "Jack"
2) "Cindy"
3) "Tom"
4) "Amy"
127.0.0.1:6379> sismember user Nancy
(integer) 0
127.0.0.1:6379> sismember user Cindy
(integer) 1
127.0.0.1:6379> spop Tom
(nil)
127.0.0.1:6379> spop user
"Amy"
127.0.0.1:6379> SMEMBERS user
1) "Jack"
2) "Cindy"
3) "Tom"

zset(sorted set:有序集合)

Redis zset 和 set 一样也是string类型元素的集合,它类似于 Java 的 SortedSet 和 HashMap 的结合体,一方面它是一个 set,保证了内部value 的唯一性,不同的是每个value都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。

序列命令描述
1zadd key score1 member1… score2 member2向有序集合添加一个或多个成员,或者更新已存在成员的分数
2zcard key获取集合的成员数
3zcount key min max计算在有序集合中指定区间分数的成员数
4ZRANGEBYSCORE key min max[limit offset count]通过字典区间返回有序集合的成员
5zrem key member1 member2移除有序集合中的一个或多个成员
6ZREMRANGEBYSCORE key min max移除有序集合中给定的分数区间的所有成员
7zscore key member返回有序集中,成员的分数值
127.0.0.1:6379> del user
(integer) 1
127.0.0.1:6379> zadd userscore 99 Amy 31 Tom 88 Nancy 98 Cindy
(integer) 4
127.0.0.1:6379> zcard userscore
(integer) 4
127.0.0.1:6379> zcount userscore 31 90
(integer) 2
127.0.0.1:6379> ZRANGEBYSCORE userscore 31 99
1) "Tom"
2) "Nancy"
3) "Cindy"
4) "Amy"
127.0.0.1:6379> ZRANGEBYSCORE userscore 31 90
1) "Tom"
2) "Nancy"
127.0.0.1:6379> zrem userscore Amy Tom
(integer) 2
127.0.0.1:6379> zscore userscore Nancy
"88"
127.0.0.1:6379> ZREMRANGEBYSCORE userscore 80 90
(integer) 1

Redis常用命令

序列命令描述
1del key删除 key
2exit key检查给定 key 是否存在。
3expire key seconds为给定 key 设置过期时间。
4pexpire key millisencondskey 的过期时间以毫秒计。
5keys pattern查找所有符合给定模式( pattern)的 key 。
6ttl key以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。
7type key返回 key 所储存的值的类型。
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值