redis基本数据类型

字符串类型String

赋值与取值SET GET
SET key value
GET key

一个字符串类型键允许存储的数据的最大容量是512MB。
Redis对于键的命名并没有强制的要求,但比较好的实践是用“对象类型:对象ID:对象属性”来命名一个键,如使用键user:1:friends来存储ID为1的用户的好友列表。对于多个单词则推荐使用“.”分隔。

递增数字INCR

当要操作的键不存在时会默认键值为0,所以第一次递增后的结果是1。当键值不是整数时Redis会提示错误。

redis>INCR num
(integer) 1
redis>INCR num
(integer) 2
redis>SET foo lorem
OK
redis>INCR foo
(error) ERR value is not an integer or out of range

其他更多:
增加指定的整数INCRBY

INCR key
INCRBY key decrement    

减少指定的整数DECR DECRBY

DECR key
DECRBY key decrement

增加指定浮点数INCRBYFLOAT

INCRBYFLOAT key increment

向尾部追加值APPEND

APPEND key value

获取字符串长度STRLEN

STRLEN key

同时获得/设置多个键值MGET MSET

MGET key [key …]
MSET key value [key value …]

位操作GETBIT SETBIT BITCOUNT BITOP

GETBIT key offset
SETBIT key offset value
BITCOUNT key [start] [end]
BITOP operation destkey key [key …]

散列类型hash

赋值与取值

HSET key field value
HGET key field
HMSET key field value [field value …]
HMGET key field [field …]
HGETALL key

判断字段是否存在

HEXISTS key field

HEXISTS命令用来判断一个字段是否存在。如果存在则返回1,否则返回0(如果键不存在也会返回0)。

当字段不存在时赋值

HSETNX key field value

增加数字

HINCRBY key field increment

删除字段

HDEL key field [field …]

列表类型list

列表类型是使用双向列表实现的,向列表两端添加元素的时间复杂度为0(1),获取越接近两端的元素速度就越快。但是通过索引访问较慢。
向列表两端增加元素

LPUSH key value [value …]
RPUSH key value [value …]

从列表两端弹出元素

LPOP key
RPOP key

获取列表中元素的个数

LLEN key

获得列表片段

LRANGE key start stop

删除列表中指定的值

LREM key count value

●当count>0时LREM命令会从列表左边开始删除前count个值为value的元素;
●当count<0时LREM 命令会从列表右边开始删除前|count|个值为value的元素;
●当count=0是LREM命令会删除所有值为value的元素。

集合类型set

增加/删除元素

SADD key member [member …]
SREM key member [member …]

SADD命令用来向集合中增加一个或多个元素,如果键不存在则会自动创建。因为在一个集合中不能有相同的元素,所以如果要加入的元素已经存在于集合中就会忽略这个元素。本命令的返回值是成功加入的元素数量(忽略的元素不计算在内)。

redis>SADD letters a
(integer) 1
redis> SADD letters a b c
(integer) 2

判断元素是否在集合中

SISMEMBER key member

集合间运算

SDIFF key [key …]
SINTER key [key …]
SUNION key [key …]

有序集合类型sorted set

在集合类型的基础上有序集合类型为集合中的每个元素都关联了一个分数,这使得我们不仅可以完成插入、删除和判断元素是否存在等集合类型支持的操作,还能够获得分数最高(或最低)的前N个元素、获得指定分数范围内的元素等与分数有关的操作。虽然集合中每个元素都是不同的,但是它们的分数却可以相同。
有序集合类型在某些方面和列表类型有些相似
(1)二者都是有序的。
(2)二者都可以获得某一范围的元素。
有序集合与列表类型的不同点
(1)列表类型是通过链表实现的,获取靠近两端的数据速度极快,而当元素增多后,访问中间数据的速度会较慢,所以它更加适合实现如“新鲜事”或“日志”这样很少访问中间元素的应用。
(2)有序集合类型是使用散列表和跳跃表(Skip list)实现的,所以即使读取位于中间部分的数据速度也很快(时间复杂度是O(log(N)))。
(3)列表中不能简单地调整某个元素的位置,但是有序集合可以(通过更改这个元素的分数)。
(4)有序集合要比列表类型更耗费内存。
增加元素

ZADD key score member [score member …]

分数不仅可以是整数,还支持双精度浮点数

redis>ZADD testboard 17E+307 a
(integer) 1
redis>ZADD testboard 1.5 b
(integer) 1
redis>ZADD testboard +inf c
(integer) 1
redis>ZADD testboard -inf d
(integer) 1

获得元素的分数

ZSCORE key member

获得排名在某个范围的元素列表

ZRANGE key start stop [WITHSCORES]
ZREVRANGE key start stop [WITHSCORES]

ZRANGE命令会按照元素分数从小到大的顺序返回索引从start到stop之间的所有元素(包含两端的元素)。
ZREVRANGE命令和ZRANGE的唯一不同在于ZREVRANGE命令是按照元素分数从大到小的顺序给出结果的。
获得指定分数范围的元素

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

增加某个元素的分数

Z INCRBY key increment member
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值