redis 数据类型
redis基本简介
redis 与 其他key-value缓存产品有以下三个特点:
- redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
- redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- redis支持数据的备份,即master-slave模式的数据备份。
redis 数据类型
五大数据类型:
- string(字符串)
- string是redis最基本的数据类型,可以理解成与Memcached一模一样的类型,一个key对应一个value。
- string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象。
- string类型是redis最基本的数据类型,string类型的值最大能存储512MB。
- hash(哈希)
redis hash 是一个键值(key=>value)对集合。
HASH 类似于 Java 中的 Map ,是一个键值对集合,在 redis 中可以用来存储对象。 - list(列表)
redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。 - set(集合)
redis 的set 是string类型的无序集合。
集合是通过哈希表实现,所以添加,删除,查找的复杂度都是O(1). - zset(sorted set:有序集合)
redis zset和set一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正式通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。
redis keys命令
我们通过set命令先插入一条数据:
1 | 127.0.0.1:6379> set name zhangsan |
del 命令
上面我们看到OK表示成功插入了一条记录。我们可以通过del命令来删除一个已经存在的key。如下:
1 | 127.0.0.1:6379> del name |
看到(integer)1
表示数据删除成功。同时删除多个key,可以使用 del name age sex.
dump 命令
dump命令可以序列化给定的key,并返回序列化之后的值:
1 | 127.0.0.1:6379> dump name |
exists 命令
exists 用来判断指定key是否存在。例如:
1 | 127.0.0.1:6379> exists name |
如上述所示,表示key为name
是存在,而 key为age
不存在
ttl 命令
ttl命令可以查看一个给定key的有效时间:
1 | 127.0.0.1:6379> ttl name |
-2 表示key不存在或是已经过期。-1 表示key存在并且没有设置过期时间(永久有效)。当然,我们可以通过下面的命令给key设置一个过期时间。
expire 命令
expire命令可以给key设置一个有效期,有效期过后,该key就会自动被销毁:
1 | 127.0.0.1:6379> expire name 20 |
20表示过期时间为20秒,ttl name 返回14,11. 表示这个key的有效时间还剩下 14秒或11秒。
persist 命令
persist 命令表示移除一个key的过期时间,这样该key就永远不会过期了。
1 | 127.0.0.1:6379> set name lisi |
pexpire 命令
pexpire 命令的功能和expire命令的功能基本一致,只不过这里设置的参数值是以毫秒为单位的:
1 | 127.0.0.1:6379> pexpire name 60000 |
pttl 命令
pttl命令和ttl命令基本一致,但是pttl命令返回的是以毫秒为单位的:
1 | 127.0.0.1:6379> pexpire name 60000 |
keys 命令
keys命令可以获取满足给定模式所有key,如:
1 | 127.0.0.1:6379> set name ooyhao |
keys *
表示获取所有的key。* 也可以是一个正则表达式。
关于key相关的常见命令就差不多了,如果需要完整可以移步:http://www.redis.cn/commands.html