[Redis] Redis的基本数据结构

时间:2019-08-26
本文章向大家介绍[Redis] Redis的基本数据结构,主要包括[Redis] Redis的基本数据结构使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

key-value

通过key获取或设置value

SET key value

GET key

SET server:name "fido"

GET server:name

SETNX : SET-if-not-exists

INCR : +1 原子操作

SET connections 10
INCR connections =>11

INCR A =>1

给key设置过期时间

TTL 获取一个key的存活时间,每次set一个key的value,过期时间将会重置

  • -2 已过期
  • -1 永不过期
SET str "ASD"
EXPIRE str 120 # 120s后过期
TTL str # 获取str的过期时间

list

RPUSH 插入数据到list末尾

LPUSH 插入数据到list起点

LRANGE 返回list的子集 下标从0开始

LRANGE friends 0 -1  # 类似python  返回整个list

LLEN 返回list长度

LPOP 删除list第一个元素并返回这个元素(左边是第一个元素)

RPOP 删除list最后一个元素并返回这个元素(右边是最后一个元素)

set

去重的list,无序,由于是无序的所以没有srange这个命令,取而代之的是SMEMBERS用于返回所有的数据

SADD

重复的元素会插入失败

SADD data_set "aa"    // 1
SADD data_set "data1" // 1
SADD data_set "aa"    // 0,已经存在aa,插入失败

SREMset中删除指定元素

SREM data_set "data1"

SISMEMBER 是否set中元素 1 => 是

SISMEMBER data_set "aa"

SMEMBERS 返回set所有元素

SUNION 两个或多个set合并并返回所有元素的列表

SCARD 返回set长度

zset (有序set)

通过一个score来排序

添加数据的时候要指定一个score,用于排序,排序是redis自动执行的

ZADD superheros 1 ironman
ZADD superheros 3 thor
ZADD superheros 2 spiderman

ZRANGE key start stop [WITHSCORES]
返回key中[start stop] 的数据,按score递增排序,递减排序用ZREVRANGE

加上withscores后会将score也输出

> zrange superheros 0 -1
1) "ironman"
2) "spiderman"
3) "thor"

> zrange superheros 0 -1 withscores
1) "ironman"
2) 1.0
3) "spiderman"
4) 2.0
5) "thor"
6) 3.0

ZREM
删除zset中一个或多个成员,不存在的被忽略
返回成功移除的数量

Hashes

> HSET key field value
(integer) 1

> HSET key field1 value1
(integer) 1

> HGET key field
"value"

HMSET key field1 value1 field2 value2 field3 value3
OK

> HMGET key field1 field2 filed3 field4
1) "value1"
2) "value2"
3) "value3"
4) (nil)

Sets field in the hash stored at key to value. If key does not exist, a new key holding a hash is created. If field already exists in the hash, it is overwritten.

0 变量已存在,值已更新
1 变量不存在,已经创建

理解为key指向了一个对象,这个对象里都是键值对

HINCRBY 为field的value增加指定数值,原子操作,如果field不存在将会新增

HSET key age 3
HINCRBY key age 2 # age变成5

HINCRBY key num 1 # num被新建,值设置为1

HDEL 删除key的某个field

HDEL key age

Reference

  1. Try Redis

原文地址:https://www.cnblogs.com/arcsinw/p/11414576.html