参考网址:http://doc.redisfans.com/
redis 在操作的时候,不区分大小写(包括php)
Key(键)
DEL key [key ...]
删除给定的一个或多个 key 。
不存在的 key 会被忽略。
http://doc.redisfans.com/key/del.html
EXISTS key
检查给定 key 是否存在。
http://doc.redisfans.com/key/exists.html
String(字符串)
GET key
返回 key 所关联的字符串值。
如果 key 不存在那么返回特殊值 nil 。
假如 key 储存的值不是字符串类型,返回一个错误,因为 GET 只能用于处理字符串值。
http://doc.redisfans.com/string/get.html
SET key value [EX seconds] [PX milliseconds] [NX|XX]
将字符串值 value 关联到 key 。
如果 key 已经持有其他值, SET 就覆写旧值,无视类型。
对于某个原本带有生存时间(TTL)的键来说, 当 SET 命令成功在这个键上执行时, 这个键原有的 TTL 将被清除。
http://doc.redisfans.com/string/set.html
Hash(哈希表)
HSET key field value 设置值 hset
将哈希表 key 中的域 field 的值设为 value 。
如果 key 不存在,一个新的哈希表被创建并进行 HSET 操作。
如果域 field 已经存在于哈希表中,旧值将被覆盖。
http://doc.redisfans.com/hash/hset.html
HGET key field 获取值 hget
返回哈希表 key 中给定域 field 的值。
http://doc.redisfans.com/hash/hget.html
HGETALL key 获取所有key hgetall
返回哈希表 key 中,所有的域和值。
在返回值里,紧跟每个域名(field name)之后是域的值(value),所以返回值的长度是哈希表大小的两倍。
http://doc.redisfans.com/hash/hgetall.html
HDEL key field 删除key下的域
删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略。
http://doc.redisfans.com/hash/hdel.html
HINCRBY key field increment 递增(整数) hincrby
为哈希表 key 中的域 field 的值加上增量 increment 。
增量也可以为负数,相当于对给定域进行减法操作。
如果 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。
如果域 field 不存在,那么在执行命令前,域的值被初始化为 0
http://doc.redisfans.com/hash/hincrby.html
HINCRBYFLOAT key field increment 递增(浮点) hincrbyfloat
为哈希表 key 中的域 field 加上浮点数增量 increment 。
如果哈希表中没有域 field ,那么 HINCRBYFLOAT 会先将域 field 的值设为 0 ,然后再执行加法操作。
如果键 key 不存在,那么 HINCRBYFLOAT 会先创建一个哈希表,再创建域 field ,最后再执行加法操作
http://doc.redisfans.com/hash/hincrbyfloat.html
hash的不能马上设置时间,只能用expire来设置key的时间,所以自己写个redis类来实现比较好。
有偿阅读项目用到:
List(列表)
LPUSH key value [value ...] 从左边插入(相当于php的array_unshift) # 列表允许重复元素
将一个或多个值 value 插入到列表 key 的表头
如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表头: 比如说,对空列表 mylist 执行命令 LPUSH mylist a b c,列表的值将是 c b a ,这等同于原子性地执行 LPUSH mylist a 、 LPUSH mylist b 和 LPUSH mylist c 三个命令。
如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。
当 key 存在但不是列表类型时,返回一个错误。
http://doc.redisfans.com/list/lpush.html
LPOP key 从左边移除(php的array_shift)
移除并返回列表 key 的头元素。
http://doc.redisfans.com/list/lpop.html
RPUSH key value [value ...] 从右边插入(相当于php的array_push)
将一个或多个值 value 插入到列表 key 的表尾(最右边)。
如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表尾:比如对一个空列表 mylist 执行 RPUSH mylist a b c ,得出的结果列表为 a b c ,等同于执行命令 RPUSH mylist a 、 RPUSH mylist b 、 RPUSH mylist c 。
如果 key 不存在,一个空列表会被创建并执行 RPUSH 操作。
当 key 存在但不是列表类型时,返回一个错误。
http://doc.redisfans.com/list/rpush.html
RPOP key 从右边移除(php的array_pop)
移除并返回列表 key 的尾元素。
http://doc.redisfans.com/list/rpop.html
LLEN key 查询长度(就是list里有几个)
返回列表 key 的长度。
如果 key 不存在,则 key 被解释为一个空列表,返回 0 .
如果 key 不是列表类型,返回一个错误。
http://doc.redisfans.com/list/llen.html
LINDEX key index 查询(用下标)
返回列表 key 中,下标为 index 的元素。
下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。
你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
如果 key 不是列表类型,返回一个错误。
http://doc.redisfans.com/list/lindex.html
LRANGE key start stop 区间查询 例如:lrange key 0 -1 查询全部
返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。
下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。
你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
注意LRANGE命令和编程语言区间函数的区别
假如你有一个包含一百个元素的列表,对该列表执行 LRANGE list 0 10 ,结果是一个包含11个元素的列表,这表明 stop 下标也在LRANGE 命令的取值范围之内(闭区间),这和某些语言的区间函数可能不一致,比如Ruby的 Range.new 、 Array#slice 和Python的range() 函数。
超出范围的下标
超出范围的下标值不会引起错误。
如果 start 下标比列表的最大下标 end ( LLEN list 减去 1 )还要大,那么 LRANGE 返回一个空列表。
如果 stop 下标比 end 下标还要大,Redis将 stop 的值设置为 end 。
http://doc.redisfans.com/list/lrange.html
有偿阅读项目用到:
Set(集合)
SADD key member [member ...] 集合里不可添加一样的值(值唯一) sadd
将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。
假如 key 不存在,则创建一个只包含 member 元素作成员的集合。
当 key 不是集合类型时,返回一个错误。
http://doc.redisfans.com/set/sadd.html
SREM key member [member ...] 移除某个值 srem
移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略。
当 key 不是集合类型,返回一个错误。
http://doc.redisfans.com/set/srem.html
SMEMBERS key 查询所有成员,返回是数组(array)形式【php】
返回集合 key 中的所有成员。
不存在的 key 被视为空集合。
http://doc.redisfans.com/set/smembers.html
SortedSet(有序集合)
ZADD key score member [[score member] [score member] ...] 有序集合添加,添加键值存在并且值一样的添加不进去,除此之外都行(已存在的键值,值会被覆盖)
【添加已存在元素,且 score 值不变】 【添加已存在元素,但是改变 score 值】
将一个或多个 member 元素及其 score 值加入到有序集 key 当中。
如果某个 member 已经是有序集的成员,那么更新这个 member 的 score 值,并通过重新插入这个 member 元素,来保证该 member 在正确的位置上。
score 值可以是整数值或双精度浮点数。
如果 key 不存在,则创建一个空的有序集并执行 ZADD 操作。
当 key 存在但不是有序集类型时,返回一个错误。
对有序集的更多介绍请参见 sorted set 。
http://doc.redisfans.com/sorted_set/zadd.html
ZRANGE key start stop [WITHSCORES] 按区间(根据下标)获取成员,按 score 值递增(从小到大)来排序(默认)
可以只取值不取键:ZRANGE salary 0 -1 # 显示整个有序集成员
返回有序集 key 中,指定区间内的成员。
其中成员的位置按 score 值递增(从小到大)来排序。
具有相同 score 值的成员按字典序(lexicographical order )来排列。
如果你需要成员按 score 值递减(从大到小)来排列,请使用 ZREVRANGE 命令。
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] 按区间(根据下标,可判断大小的)获取成员,按 score 值递增(从小到大)来排序(默认)
可以只取值不取键: ZRANGEBYSCORE salary -inf +inf # 显示整个有序集
返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。
具有相同 score 值的成员按字典序(lexicographical order)来排列(该属性是有序集提供的,不需要额外的计算)。
http://doc.redisfans.com/sorted_set/zrangebyscore.html
ZREM key member [member ...] 移除某个成员
移除有序集 key 中的一个或多个成员,不存在的成员将被忽略。
当 key 存在但不是有序集类型时,返回一个错误。
有偿阅读项目用到: