内容简介: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 种特殊类型详解
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Android群英传
徐宜生 / 电子工业出版社 / 2015-9 / 69.00元
《Android群英传》对具有一定Android开发基础的读者,以通俗易懂的语言介绍了Android开发的进阶技巧。《Android群英传》共分为13章,讲解了Android体系与系统架构、Android开发工具新接触、Android控件架构与自定义控件详解、ListView使用技巧、Android Scroll分析、Android绘图机制与处理技巧、Android动画机制与使用技巧、Activi......一起来看看 《Android群英传》 这本书的介绍吧!