Redis数据类型的相关操作

注:此处的操作不全,仅做参考。

字符串类型

设置:SET "key" "value"

获取:GET "key",如果GET一个不存在的键返回(nil)

返回字符串长度:STRLEN "key"

追加:APPEND "key" "append value"

范围并返回新的字符串长度:SETRANGE "key" startPos "value"

不存在时SET:SETNX "key" "vlaue"

存在时才SET:SETXX "key" "vlaue"

使用MSET和可一次性设置或获取多个键的值,由于操作的原子性,可以节省网络开销。

字符串的三种编码方式:int、embstr、raw。使用OBJECT ENCODING "key"来获取内部编码。

列表类型

插入元素:LPUSH "key" value1  value2(添加到列表左端)

                  RPUSH "key" value1  value2(添加到列表右端)

                  LINSERT "key" AFTER/BEFORE "pos_value" "new_value"(插入列表的枢轴元素之前或之后)

获取元素:LRANGE "key" 0 -1

根据索引获取元素:LINDEX "key" index

删除单个元素:LPOP/RPOP "key"

删除多个元素:LTRIM "key" 1 -1

设置指定索引处的元素值:LSET "key" index "value"

LPOP和RPOP的阻塞版本:BLPOP和RBPOP,可以设置超时时间,0为永久等待。BRPOP "key" wait_time

哈希类型

设置元素:HSET hash_name key value

                  HMSET hash_name key1 value1 key2 value2 ...

获取元素:HGET hash_name key

                  HMGET hash_name key1 key2 ...

判断哈希中是否存在某个字段:HEXISTS hash_name key

获取哈希中的所有字段和值:HGETALL hash_name(不建议对数据量大的哈希使用HGETALL,会阻塞服务器)

删除字段:HDEL hash_name key1 key2

增量获取所有字段和值:HSCAN hash_name cursor [MATCH pattern] [COUNT number]

集合类型

添加元素:SADD set_name value1 value2 ...

一个元素是否在集合中:SISMEMBER set_name value

删除元素:SREM set_name value

获取集合中成员的数量:SCARD set_name

列出所有元素:SMEMBERS set_name(不建议,会阻塞服务器,推荐SSCAN)

计算并集:SUNION、SUNIONSTORE

计算交集:SINTER、SINTERSTORE

计算差集:SDIFF、SDIFFSTORE

举例:SINTER set_name1 set_name2

           SINTERSTORE new_set set_name1 set_name2

有序集合

添加元素:ZADD set_name weight1 value1 weight2 value2 ...

获取所有排名:ZREVRANGE set_name 0 -1 WITHSCORES

给某元素的权重加1:ZINCRBY set_name 1 value

获取某元素排名:ZREVRANK set_name value

获取某元素的权重:ZSCORE set_name value

合并两个集合:ZUNIONSTORE new_set x set_name1 set_name2 ... set_namex WEIGHTS 1 2

仅在元素不存在时添加新元素:ZADD set_name NX weight value

仅更新存在元素:ZADD set_name XX weight value

HyperLogLog

如果不想获取元素的内容,而只想得到不同值的个数,可以使用HyperLogLog来优化使用集合类型时存在的内存和性能问题。

添加元素:PFADD set_name value

获取不同元素的数量:PFCOUNT set_name

合并:PFMERGE set1 set2 set3 ...

Geo类型

支持存储和查询地理位置相关场景中的坐标。

添加元素:GEOADD geo_set x1  y1 value1 x2 y2 value2 ...

获取指定元素的坐标:GEOPOS geo_set value

距离某个坐标位置在5km以内的元素,中心点由指定坐标决定:GEORADIUS geo_set x y 5 km

两个元素的距离:GEODIST geo_set value1 value2 km

找出制定范围的成员,中心的由集合元素决定:GEORADIUSBYMEMBER geo_set value 100 km

键管理

Redis键的个数:DBSIZE

获取所有键:1.KEYS *                    2.SCAN

删除键:DEL  key1 key2 ...

异步删除数量大的key(重开线程进行异步删除,不会阻塞主进程的事件处理):UNLIKE key

获取键的类型:TYPE key

重命名键:RENAME key new_key

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值