Redis中的数据都是key/value对,这里的数据类型指的是value的值的类型 | 数据类型 | 说明 | |--|--| |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)。集合中最大的成员数为 232 - 1 (4294967295, 每一个集合可存储40多亿个成员)。 | | ZSet |有序集合和集合同样也是string类型元素的集合,且不容许重复的成员。不一样的是每一个元素都会关联一个double类型的分数。redis正是经过分数来为集合中的成员进行从小到大的排序。有序集合的成员是惟一的,但分数(score)却能够重复。集合是经过哈希表实现的,因此添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每一个集合可存储40多亿个成员)。 |html
启动redis服务并登陆客户端 正则表达式
五种数据类型的数据的结构差别因此命令也不尽相同,可是仍是有一些相通的命令。因此此处先介绍下通用命令redis
建立一个简单的k/v对数据库
127.0.0.1:6379> set ps aaa OK
在redis中,默认一共有16个数据库,编号为0-15,正常状况下,用户登陆成功后,首先看到的是0号库,能够手动切换为其余库,使用安全
127.0.0.1:6379> set ps aaa OK 127.0.0.1:6379> select 2 OK 127.0.0.1:6379[2]> select 3 OK 127.0.0.1:6379[3]> get ps (nil) 127.0.0.1:6379[3]> select 0 OK 127.0.0.1:6379> get ps "aaa" 127.0.0.1:6379>
该命令用于在 key 存在时删除 key。code
27.0.0.1:6379> DEL ps (integer) 1 127.0.0.1:6379> DEL ps (integer) 0 127.0.0.1:6379>
返回数字表示删除的记录数xml
序列化给定 key ,并返回被序列化的值。htm
127.0.0.1:6379> DUMP name "\x00\x02ps\b\x00\xed\x8fe\xc3\x9ck\"\n" 127.0.0.1:6379> DUMP k1 (nil)
若是key不存在返回nil对象
检查key是否存在blog
127.0.0.1:6379> EXISTS name (integer) 1 127.0.0.1:6379> EXISTS ps (integer) 0
1表示存在,0表示不存在
以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)
127.0.0.1:6379> ttl name (integer) -1 127.0.0.1:6379> ttl ps (integer) -2
-2表示key不存在,-1表示没有设置有效时间,不会过时,咱们能够经过EXPIRE key 设置有效时间
是指有效时间,单位秒
127.0.0.1:6379> EXPIRE name 10 (integer) 1 127.0.0.1:6379> ttl name (integer) 5 127.0.0.1:6379> ttl name (integer) 1 127.0.0.1:6379> ttl name (integer) -2
5是剩余的有效时间。
一样是设置过时时间,只是单位是毫秒
127.0.0.1:6379> PEXPIRE name 1000 (integer) 1 127.0.0.1:6379> ttl name (integer) -2
和ttl命令同样,只是返回单位是毫秒
127.0.0.1:6379> PEXPIRE name 10000 (integer) 1 127.0.0.1:6379> PTTL name (integer) 8171 127.0.0.1:6379> PTTL name (integer) 5343 127.0.0.1:6379> PTTL name (integer) 4452 127.0.0.1:6379>
经过正则表达式查找符合条件的key
127.0.0.1:6379> set name zhangsan OK 127.0.0.1:6379> set age 18 OK 127.0.0.1:6379> set sex nv OK 127.0.0.1:6379> KEYS * 1) "sex" 2) "age" 3) "name"
keys * 查询全部的key
从当前数据库中随机返回一个key
127.0.0.1:6379> RANDOMKEY "sex" 127.0.0.1:6379> RANDOMKEY "sex" 127.0.0.1:6379> RANDOMKEY "sex" 127.0.0.1:6379> RANDOMKEY "sex"
返回能够对应的数据类型
127.0.0.1:6379> TYPE name string 127.0.0.1:6379> TYPE age string 127.0.0.1:6379> TYPE sex string 127.0.0.1:6379> TYPE ps none
不存在返回none
修改key的名称
127.0.0.1:6379> RENAME age ages OK 127.0.0.1:6379> EXISTS age (integer) 0 127.0.0.1:6379> EXISTS ages (integer) 1
清空当前数据库
127.0.0.1:6379> KEYS * 1) "ages" 2) "sex" 3) "name" 127.0.0.1:6379> FLUSHDB OK 127.0.0.1:6379> keys * (empty list or set)
清空全部库