Redis是一个速度非常快的非关系型数据库,它可以存储键与五种不同类型的值之间的映射,他可以将存储在内存的键值对数据持久化到硬盘,他可以使用复制特性来扩展读写性能,可以使用客户端分片来扩展写性能。
Redis五种基本数据结构:String、List、Set、Hash、Zset.
STRING:可以是字符串、整数、或者浮点数,如果redis将一个值存储为字符串里面的时候,这个值可以解释成十进制或者浮点数,那么redis会察觉到这一点,并且允许用户对这个值执行数值操作,如果用户对一个不存在的键或者一个空串执行自增或者自减操作,那么redis会将这个键值当成0来处理。应用场景:String是最常用的一种数据类型,普通的key/ value 存储都可以归为此类.
GET:获取存储给定键中的值 SET:设置存储在给定键中的值 DEL:删除存储在给定键中的值 INCR:将键值加一 DECR:将键值减一 INCRBY:将键存储的值加上整数 DECRBY:将键存储的值减去整数 INCRBYFLOAT:将键存储的值加上浮点数amount(版本大于2.6) APPEND:将值追加到给定键值后面 GETRANGE:获取一个偏移量范围内的子串:getrange keyname start end SETRANGE:将从start偏移量开始的子串设置为给定值 GETBIT:将字节串看做是二进制位串并返回位串中偏移量位offset的二进制位的值 SETBIT:将字节串看做是二进制位串并将位串中偏移量为offset的二进制位的值设置为value BITCOUNT:统计二进制串里为1的数量,如果指定了start和end,那么只对指定偏移量内进行统计 bitcount keyname [start end] BITOP:对一个或者多个二进制位串执行包括并、或、异或、非操作。并将计算结果保存在destkey中 bitop operation destkey keyname [keyname...]
localhost:0>set key helloworld
"OK"
localhost:0>get key
"helloworld"
localhost:0>append key ' redis'
"16"
localhost:0>get key
"helloworld redis"
localhost:0>set num 12
"OK"
localhost:0>incr num
"13"
localhost:0>decr num
"12"
localhost:0>decr num
"11"
localhost:0>incrby num 8
"19"
LIST:一个链表,链表的每个节点都包含了一个字符串,redis的列表允许用户从序列的两端推入或者弹出元素,获取列表元素,以及执行各种常见的列表操作。它的优点在于他可以包含多个字符串值,这使得用户可以将数据集中在同一个地方。应用场景比如twitter的关注列表,粉丝列表、消息队列等,可以利用Lists的PUSH操作,将任务存在Lists中,