redis数据类型
redis支持的数据类型相比于MySQL等关系型数据库来说还是很少的。主要支持以下五种数据类型:
string(字符串)
hash(哈希)
list(列表)
set(集合)
zset(sorted set:有序集合)
(1)string(字符串)
给一个操作小栗子:
127.0.0.1:6379> get name "maxiangqian" 127.0.0.1:6379> set name 'mxqtest' OK 127.0.0.1:6379> get name "mxqtest"
我们要注意一点就是一个键最大能存储512MB
(2)hash(哈希)
Redis hash 是一个键名对集合。Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
看一个例子:
127.0.0.1:6379> HMSET user maxiangqian maxiangqian1 maxiangqian2 maxiagnqian3 OK 127.0.0.1:6379> HMGETALL user (error) ERR unknown command 'HMGETALL' 127.0.0.1:6379> HGETALL user 1) "maxiangqian" 2) "maxiangqian1" 3) "maxiangqian2" 4) "maxiagnqian3"
实例中我们使用了 Redis HMSET, HGETALL 命令,user 为键值。每个 hash 可以存储 232 -1 键值对(40多亿)。
(3)list(列表)
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
127.0.0.1:6379> lpush listtest maxiangqian (integer) 1 127.0.0.1:6379> lpush listtest maxiangqian1 (integer) 2 127.0.0.1:6379> lpush listtest maxiangqian2 (integer) 3 127.0.0.1:6379> lpush listtest 0 (integer) 4 127.0.0.1:6379> lrange listtest 0 2 1) "0" 2) "maxiangqian2" 3) "maxiangqian1"
列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。
(4)set(集合)
实例:
127.0.0.1:6379> sadd key i (integer) 1 127.0.0.1:6379> sadd key am (integer) 1 127.0.0.1:6379> sadd key a (integer) 1 127.0.0.1:6379> sadd key student (integer) 1 127.0.0.1:6379> smembers key 1) "member" 2) "a" 3) "am" 4) "i" 5) "student"
可以看到集合是无序的,输出并没有按照我们的预想的集合输出。我们有一点还要注意,那就是集合具有唯一性,第二次插入的相同数据会被忽略掉。集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。
(5)zset(sorted set:有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。
127.0.0.1:6379> zadd maxiangqian 0 test (integer) 1 127.0.0.1:6379> zadd maxiangqian 0 test1 (integer) 1 127.0.0.1:6379> zadd maxiangqian 0 test2 (integer) 1 127.0.0.1:6379> zadd maxiangqian 0 test3 (integer) 1 127.0.0.1:6379> zadd maxiangqian 0 test3 (integer) 0 127.0.0.1:6379> ZRANGEBYSCORE maxiangqian 0 1000 1) "test" 2) "test1" 3) "test2" 4) "test3"
看一下链接到redis的一个 简单的命令:
redis-cli -h host -p port -a password
热衷于学习讨论MySQL和SQL Server,NoSQL等数据库技术,欢迎加入SQL优化群:659336691