内容简介:DbsizeFlushdbFl
Redis五大数据类型
补充:常用命令
Ping ping下redis
Dbsize 查看当前数据库的 key的数量
Select 1 切换到下标为1的数据库中
Flushdb 清空当前库 key
Fl ushall 清空 全部库 key
Redis键的操作(常用):
查看当前数据库的所有 key:
Keys *
判断当前 key是否存在:
exists name
将当前 key移动到2号库中:
Move name 2
设置 key在6秒后过期:
expire name 6
查看当前 key还有多久过期
ttl name
查看当前 key是什么结构的类型
type name
String 类型(常用)
String是 redis 最基本的类型,可以理解成一个key对应一个value。
String类型是二进制安全带额,意思是redis的string可以包含任何数据,比如jpg图片或者序列化对象。
一个 redis中字符串value最多可以是512M
操作:
set name oyr: 给键 name设置值为oyr
get name: 获取键 name的值
del name: 删除建为 name值
append name 123: 在 name对应的值后面追加123
strlen name: 得到当前 name对应的值的长度
incr age: age+1一定要是数字才能操作
incrby age 10: age+10
decr age: age-1一定要是数字才能操作
decrby age 10: age-10
setex name 10 oyr:
( set with expire)
设置 key为name,过期时间为10秒,值为oyr
sexnx name ooo:
( sex if not exist)
设置键位 name,值为ooo,只有不存在的时候才会设置进去
mset k1 v1 k2 v2 k3 v3: 一次设置多个值
mget k1 k2 k3: 一次获取多个值
msetnx k1 v1 k2 v2 k3 v3: 一次设置多个值,如果有一个键是存在的那么全部失效。
Hash 类型(常用)
Redis hash 是一个键值对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
类似 Java里面的Map<String,Object>
K - V模式不变,但V是一个键值对
操作:
( 1)hset
hset user name oyr 给键 user的name属性设置值
( 2)hget
hget user name 获取键 user的name值
( 3)hmset
hmset user age 18 sex nan 同时设置多个值
( 4)hmget
hmget user name age sex 同时获取多个属性值
( 5)hgetall
h getall user 获取键 user中的所有键和值
( 6)hdel
hdel user name 删除键 user中的name属性
( 7)hlen
hlen user 获取键 user下有几个属性
( 8)hexists
hexists user nane 判断键 user下是否有name属性
( 9)hkeys
hkys user 获取键 user下的所有属性
( 10)hvals
hvals user 获取键 user下的所有值
( 11)hsetnx
hsetnx user name "oyr" 如果 user对象里存在 name 属性,则不做操作,不存 在,创建并赋值。
(12)hincrby
hincrby user age 10 给键 user里的age 属性添加10
Lists 类型(双向链表)
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
它的底层实际是个链表 , 而且是双向链表。注意:先进后出,后进先出
操作:
lpush list1 a b c d 给 list1链表添加数据a b c d,从头部添加
lrange list1 0 -1 获取 list1链表所有数据
rpush list2 1 2 3 给链表 list2尾部插入元素
lpop list1 出栈 mylist,出栈后,元素消失(从头部出)
rpop list1 出栈 mylist,出栈后,元素消失(从尾部出)
lindex list1 3 获取链表的 3索引位置的值
list1 获取 list1 链表的长度
lset list2 2 s 给链表索引 2的位置设置值为 s
lrem list3 2 d 删除链表 2个d元素
ltrim list2 2 5 从索引 2截取到索引5,其他元素被遗弃
linsert list2 before/after s u 在链表 f元素前面或者后面插入 h 元素
rpoplpush list1 list2 从 list1链表中尾部出站,出栈元素添加给list2链表
lists性能总结:
它是一个字符串链表, left、right都可以插入添加;
如果键不存在,创建新的链表;
如果键已存在,新增内容;
如果值全移除,对应的键也就消失了。
链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了。
Set 类型(不能重复)
Redis的Set是string类型的无序集合。它是通过HashTable实现实现的,
操作:
sadd set1 a b c d 给 set1集合添加元素
smembers set1 查看 set1集合的所有元素
sismember set1 a 判断 set1集合中是否有a元素
scard set1 获取集合 set1 的元素个数
srem set1 a 删除集合 set1中的元素(可以一次删除多个)
srandmember set2 3 在集合 set2中随机出3个元素
diff set3 set4 差集,取 set3中存在但是set4中不存在的元素
sinter set3 set4 交集,取 set3和set4都存在的元素
sunion set3 set4 并集
Sortedsets 类型
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个 double类型的分数。
redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。
操作:
zadd zset1 60 a 70 b 80 c 90 d 100 f 给 zset1 有序集合设置元素,同时 设置元素分数。
zrange zset1 0 -1 withscores 查询集合所有元素 ,0:开始,-1:结 束 ,withscores显示分数
zrange zset1 0 2 查询集合下标 0到下标2的元素
zcount zset1 70 90 统计分数在 70 到 90 之间元素,闭区间。
zcount zset1 (70 90 统计分数在 70到90之间元素,左边开区间,右边闭区间
zcount zset1 -inf +inf 统计所有元素 -inf:最小值 +inf:最大值
根据分数查询 12到19集合,从坐标0开始。每页显示1条,12-19都是闭区间:
zrangebyscore mysset 12 19 withscores limit 0 1
zrem zset1 a b 集合删除元素 a b
五大数据类型操作结束
以上所述就是小编给大家介绍的《Redis五大数据类型》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 【数据类型】js的数据类型
- Python中不可变数据类型和可变数据类型
- 重学JS: 数据类型及类型检测
- JS专题之数据类型和类型检测
- 6. Go 语言数据类型:字典与布尔类型
- Redis 入门-数据类型:3 种特殊类型详解
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Head First JavaScript Programming
Eric T. Freeman、Elisabeth Robson / O'Reilly Media / 2014-4-10 / USD 49.99
This brain-friendly guide teaches you everything from JavaScript language fundamentals to advanced topics, including objects, functions, and the browser’s document object model. You won’t just be read......一起来看看 《Head First JavaScript Programming》 这本书的介绍吧!