GETBIT key offset
SETBIT key offset value
BITCOUNT key [start] [end] 获取键值中值为1的二进制位个数,start和end表示字节位置
BITOP operation destkey key [key...] 对多个键值进行位运算,并将结果存储在destkey对应的键值中。支持的操作:AND、 OR、 XOR、 NOT。
GETSET key newValue 原子操作,设置新值,返回原来的值。如果原值不存在,返回nil。
SETEX key seconds value 设置键值对的失效时间是seconds秒。
SETNX key value put if absent, or do nothing。
SETRANGE key offset value 从index等于offset位置起,替换length(value)个字符,替换为value。如果offset超出范围,则中间补充0x00。
GETRANGE key start end 获取指定返回的字符串,闭区间。end超过长度,则取到字符串末尾。
MGET key [key ... ]
MSET key value [key value ... ]
MSETNX key value [key value ... ] 原子操作。如果在这一批Keys中有任意一个Key已经存在了,那么该操作将全部回滚,即所有的修改都不会生效。1表示全部设置成功;0表示都没有设置。
hashHSET key field value
HGET key field
HMSET key field value [field value ... ]
HMGET key field [field ...]
HGETALL key
HEXISTS key field
HSETNX key field value 字段不存在时赋值。 与HSET类型,区别在于,如果字段存在,HSETNX不执行任何操作。
HINCRBY key filed increment 如果key、field不存在,自动创建,键值为0,再增值。
HDEL key field [field...] 这是删除的是key:field,不能直接删除key。如果要删除key,使用DEL命令。
HEYS key 只获取字段名
HVALS key 只获取字段值
HLEN key 获得字段数量
用途 用来存储分级数据。外部key作为prefix,是第一级key,hash中的key作为第二级key使用。 存储含有多个属性的对象,如一篇博客的各种属性:标题,标签,分类等。修改某个属性,不用操作整个博客内容。 listredis列表类型内部是使用双向列表实现的,所以可以向/从两端添加/删除元素。
LPUSH key value [value ...] 从左侧添加元素,如果key不存在,初始化一个空列表,再添加。返回插入后,链表的个数。
LPUSHX key value 仅当指定的Key存在时,才在列表的左边插入Value,否则将不会有任何操作发生。返回插入后,链表的个数。
RPUSH key value [value ...] 从右侧添加元素
RPUSHX key value 仅当指定的Key存在时,才在列表的右边插入Value,否则将不会有任何操作发生。返回插入后,链表的个数。
LPOP key 从两端弹出元素
RPOP key
LLEN key 获取列表中元素个数
LRANGE key start end 获取列表片段,左边在前,右边在后。起始索引为0,最右边元素索引可以为-1,右边第二个索引可以为-2,以此类推。。。索引从左到右,如果start比end靠右,则返回空列表。end值可以大于长度范围。
LREM key count value 从左边(count > 0)开始,删除前count个值为value的元素;从右边(count < 0)开始,删除前|count|个值为value的元素 ; 删除所有值为value的元素(count = 0)。返回实际删除元素的个数。
LINDEX key index 获取指定索引的元素值
LSET key index value 设置指定索引的元素值
LTRIM key start end 删除指定索引范围之外的所有元素。start和end的规则与lrange的相同。
LINSERT key BEFORE|AFTER pivot value 从左到右查找pivot,将value插在其前面(BEFORE)或者后面(AFTER)。 返回插入后,元素总个数。
RPOPLPUSH source destination 删除source最右边的元素,插入到destination最左边。返回操作的元素。
用途 列表页 setredis的set使用值为空的散列表(hash table)实现。
SADD key member [member ...] 加入set中不存在的元素;返回成功加入的值的个数
SREM key member [member ... ] 删除set中存在的元素;返回成功删除的个数
SPOP key 随机选取一个元素,弹出并返回。如果key不存在,返回nil。
SMEMBERS key 获取所有元素
SISMEMBER key member 判断元素是否在集合中,存在返回1;key或者member不存在,返回0。
SCARD key 获取元素个数
SDIFF key1 [key2 ... ] 集合求差集,key1中存在,key2中不存在的
SINTER key [key ... ] 集合求交集
SUNION key [key ... ] 集合求并集
SDIFFSTORE destination key1 [key2 ... ] 集合求差集,并存入destination中。
SINTERSTORE destination key [key ... ] 集合求交集,并存入destination中。
SUNIONSTORE destination key [key ... ] 集合求并集,并存入destination中。
SRANDMEMBER key [count] 随机选取count个元素,不带参数count时,选取一个。count=0,返回空列表;count > 0,选择min(count, scard)个数据,且不重复,最多返回所有元素; count < 0 选择|count|个元素,有可能重复。
SMOVE source destination member 原子性的将参数中的成员从source键移入到destination键所关联的Set中。因此在某一时刻,该成员或者出现在source中,或者出现在destination中。如果该成员在source中并不存在,该命令将不会再执行任何操作并返回0,否则,该成员将从source移入到destination。如果此时该成员已经在destination中存在,那么该命令仅是将该成员从source中移出。如果和Key关联的Value不是Set,将返回相关的错误信息。返回1表示正常移动,0表示source中并不包含参数成员。
用途 唯一性数据集合,如某用户访问了哪些店铺等。 集合相关场景。每个店铺的访问用户是一个set,查找同时访问多个店铺的用户群,查找访问一类店铺的用户群等。 sorted set有序集合为每一个元素关联一个分数,并按照分数进行排序。 虽然集合中的每个元素都是不相同的,但是它们的分数却可以相同。
ZADD key score member [score member ... ] 添加新元素,如果元素已经存在,则更新分数。score支持整型和双精度浮点型。返回新添加的元素的个数(更新分数的不算)。inf和-inf分别表示正无穷和负无穷。
ZINCRBY key increment member 增加一个元素的分数,increment可以是负数。
ZSCORE key member 查询元素的分数
ZCARD key 获取集合中元素的个数
ZCOUNT key min max 指定分数范围内元素的个数,支持开闭区间。
ZRANGE key start end [WITHSCORES] 按照分数从小到大排序,获取排名在某个范围的元素列表,分数可选。闭区间,end可为负数,与lrange参数要求一致。
ZREVRANGE key start end [WITHSCORES] 按照分数从大到小排序。
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count ] 按分数从小到大顺序,返回分数在闭区间[min,max]的元素。可以指定开区间,在min前面加上"(",则表示(min, max]。支持inf和-inf。 offset和count指,在获得的元素列表的基础上,向后偏移offset个元素,并且只获取前count个元素。
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count ] 按分数从大到小顺序,返回分数在闭区间[min,max]的元素。注意max和min的参数位置。
ZREM key member [member ... ] 删除一个或者多个元素
ZREMRANGEBYRANK key start end 按照范围排名删除元素,闭区间。索引从0开始。
ZREMRANGEBYSCORE key min max 按照分数排名,删除分数在[min,max]的元素,支持开区间。
ZRANK key member 按分数从小到大排序,获取元素member的排名,分数最小的排名是0
ZREVRANK key member 按分数从大到小排序,获取元素member的排名,分数最大的排名是0
ZINTERSTORE destination numkeys key [key ... ] [WEIGHTS weight [weight ... ]] [AGGREGATE SUM|MIN|MAX] 计算numkeys个有序集合的交集,存储在有序集合destination里面,返回destination的元素个数。
WEIGHTS参数设置每个集合的权重,每个集合在参与计算时,元素的分数会被乘上该集合的权重。
AGGREGATE表示destination中元素分数的计算方式:
AGGREGATE为SUM(默认值)时,则destination中元素的分数,是每个参与计算的集合中该元素分数的和。
AGGREGATE为MAX时,则destination中元素的分数,是每个参与计算的集合中该元素分数的最大值。
AGGREGATE为MIN时,则destination中元素的分数,是每个参与计算的集合中该元素分数的最小值。
ZUNIONSTORE destination numkeys key [key ... ] [WEIGHTS weight [weight ... ]] [AGGREGATE SUM|MIN|MAX] 与上面类似。
用途 排序的场景。如按照博客访问量排序文章列表。key是用户id,set中的数据是文章id,每个文章id关联一个score(访问量)。 与列表的比较 都可以获取某一范围的元素 列表类型通过链表实现,获取两端数据速度快,元素增多后,访问中间数据速度较慢。所以适合“新鲜事”和“日志”一类的场景。 有序集合是通过散列表和跳跃表实现的,所以读取位于中间部分的数据的速度也很快。时间复杂度O(log(N))。 列表不能简单的调整某个元素的位置,有序集合可以。(修改元素的分数)更多关于redis基本类型和使用方法请点击下面的相关链接