Redis的五大数据类型:
1.String
2.Set
3.Hash
4.List
5.Zset
1.String:是Redis中最基本的数据类型,二进制安全的,它可以包含任意数据类型。如图片。Redis中String类型的数据上限的512M。
List:Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含 2^32 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
Hash: 是一个string类型的field和value的映射表,hash特别适合用于存储对象。Redis 中每个 hash 可以存储 2^32 - 1 键值对(40多亿)。
Set:Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。集合中最大的成员数为 2^32 - 1 (4294967295, 每个集合可存储40多亿个成员)。
Zset:有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 2^32 - 1 (4294967295, 每个集合可存储40多亿个成员)。
Redis中的数据都是key/value对形式的。
在redis中,默认一共有16个数据库,编号为0-15,正常情况下,用户登录成功后,首先看到的是0号库。
相关语句
首先打开客户端Redis Desktop Manager
切换数据库
默认打开使用的是redis的0号库,可以使用Select语句手动切换库,默认下,不同库的数据不共享。
Centos6.5.6379:0>set zname zsl
“OK”
Centos6.5.6379:0>get zname
"zsl"
Centos6.5.6379:0>select 2
"OK"
Centos6.5.6379:2>get zname
null
删除数据
我们知道数据以k-v的形式存在的,key 存在时删除 key使用del
Centos6.5.6379:0>get zname
"zsl"
Centos6.5.6379:0>del zname
"1" //返回数字表示删除的记录数
Centos6.5.6379:0>get zname
null
序列化给定 key
使用DUMP,返回被序列化的值, 如果key不存在返回nil
Centos6.5.6379:0>get name
"zhangsan"
Centos6.5.6379:0>dump name
"\x00\x08zhangsan\x08\x00\xCE\x11\x1C\x9A1!\xACp"
Centos6.5.6379:0>get name
"zhangsan"
Centos6.5.6379:0>dump zsl
null
检查key是否存在
使用exists, 1表示存在,0表示不存在
Centos6.5.6379:0>exists zname
"0"
Centos6.5.6379:0>exists name
"1"
设置key的有效时间(秒)
使用expire, 单位秒,返回1为成功,0为失败,只能设置已存在的key的有效时间
Centos6.5.6379:0>expire name4 120
"0"
Centos6.5.6379:0>expire name2 120
"1"
查看key 的剩余生存时间(秒)
使用TTL(time to live),以秒为单位,返回给定 key 的剩余生存时间,-2表示key不存在,-1表示没有设置有效时间,不会过期,我们可以通过EXPIRE key 设置有效时间
Centos6.5.6379:0>ttl name2
"42"
Centos6.5.6379:0>ttl name2
"40"
Centos6.5.6379:0>ttl name2
"39"
Centos6.5.6379:0>ttl name2
"39"
设置key的有效时间(毫秒)
使用pexpire, 同样是设置过期时间,只是单位是毫秒, 返回1为成功,0为失败,只能设置已存在的key的有效时间
Centos6.5.6379:0>pexpire name1 120
"1"
Centos6.5.6379:0>ttl name1
"-2"
查看key 的剩余生存时间(毫秒)
使用PTTL,以毫秒为单位,返回给定 key 的剩余生存时间,-2表示key不存在,-1表示没有设置有效时间,不会过期,我们可以通过PEXPIRE key 设置有效时间
Centos6.5.6379:0>pexpire test1 3600
"1"
Centos6.5.6379:0>pttl test1
"636"
Centos6.5.6379:0>pttl test1
"-2"
key
keys * 查询所有的key
Keys *
随机返回一个key
使用randomkey从当前数据库中随机返回一个key
randomkey
返回key对应的数据类型
使用type,返回key对应的数据类型,不存在返回none
type key
重命名key名称
rename name1 haha
注意!谨用!
*清除当前库
使用flushdb,清除当前库的所有数据
flushdb
“OK”
清除所有库
使用flushall,对了,没错,就是那个删库跑路
flushall