redis学习笔记(二)
一、redis的数据类型
1.redis键(key)
序号 | 命令 | 解释 |
---|
1 | key * | 查询当前库所有键 |
2 | exists key的名字 | 判断某个key是否存在 |
3 | move key db | 把指定的key移动到别的库中 |
4 | expire key 秒钟 | 为给定的key设置过期时间,以秒计。 |
5 | EXPIREAT key timestamp | EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。 不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。 |
6 | PEXPIRE key milliseconds | 设置 key 的过期时间以毫秒计。 |
7 | PEXPIREAT key milliseconds-timestamp | 设置 key 过期时间的时间戳(unix timestamp) 以毫秒计 |
8 | PERSIST key | 移除 key 的过期时间,key 将持久保持。 |
9 | PTTL key | 以毫秒为单位返回 key 的剩余的过期时间。 |
10 | ttl key | 查看还有多少秒过期,-1表示永不过期,-2表示已过期 |
11 | DEL key | 该命令用于在 key 存在时删除 key。 |
12 | RENAME key newkey | 修改 key 的名称 |
13 | type | 查看你的key是什么类型 |
2.redis字符串(String)
序号 | 命令 | 解释 |
---|
1 | set / get / append / strlen | 设置 / 取值 / 追加字符 / 获取长度 |
2 | incr / decr / incrby / decrby | 加一 / 减一 / 加特定值 / 减特定值。一定是数字才能加减! |
3 | getrange / setrange | getrange key start end 返回 key 中字符串值的子字符,相当于截取从start到end |
4 | setex key seconds value | 将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)。 |
5 | setnx key value | 只有在 key 不存在时设置 key 的值 |
6 | mset / mget / msetnx | 同时设置一个或多个 key-value 对。msetnx:当且仅当所有给定 key 都不存在 |
7 | getset | 将给定 key 的值设为 value ,并返回 key 的旧值(old value) |
8 | PSETEX key milliseconds value | 这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位。 |
3.redis列表(List)
序号 | 命令 | 解释 |
---|
1 | lpush / rpush / lrange | l(left,倒插)、r(right正插),lrange 获取列表指定范围内的元素 |
2 | lpushx / rpushx | 将一个或多个值插入到列表头部 / 为已存在的列表添加值 |
3 | lpop / rpop | 移出并获取列表的第一个元素 / 最后一个 |
4 | lindex | 通过索引获取列表中的元素(从上到下) |
5 | llen | 获取列表长度 |
6 | type | 查看你的key是什么类型 |
7 | lrem key | 删除N个value |
8 | ltrim key | 开始index 结束index,截取指定范围的值后再赋值给key |
9 | rpoplpush | 移除列表的最后一个元素,并将该元素添加到另一个列表并返回 |
10 | lset key index value | 通过索引设置列表元素的值 |
11 | linsert key before / after 值1 值2 | 在列表的元素前或者后插入元素 |
性能总结
它是一个字符串链表,left、right都可以插入添加;
如果键不存在,创建新的链表;
如果键存在,新增内容;
如果值全移除,对应的键也就消失了;
链表的操作无论是头和尾效率都很高,但假如是对中间元素进行操作,效率就很惨了
4.redis集合(Set)
序号 | 命令 | 解释 |
---|
1 | sadd / smembers / sismember | 添加 / 查看 / 是否存在 |
2 | scard | 获取集合的成员数 |
3 | srem key value | 移除集合中一个或多个成员 |
4 | srandmember key | 返回集合中一个或多个随机数 |
5 | spop key | 移除并返回集合中的一个随机元素 |
6 | smove key1 key2 value1 | 将 value1元素从 key1 集合移动到 key2集合 |
7 | sdiff key1 key2 | 返回给定所有集合的差集 |
8 | sinter key1 key2 | 返回给定所有集合的交集 |
9 | sunion key1 key2 | 返回所有给定集合的并集 |
5.redis哈希(Hash)
序号 | 命令 | 解释 |
---|
1 | hset key field value/ hget key field | 设置 / 获取存储在哈希表中指定字段的值 |
2 | hmset / hmget | 设置 / 获取 指定key中的KV值 |
3 | hdel | 删除一个或多个哈希表字段 |
4 | hlen | 获取哈希表中字段的数量 |
5 | hexists key | 查看哈希表 key 中,指定的字段是否存在 |
6 | hkeys / hvals | 获取指定key中,所有的key值 / value值 |
7 | hincrby / hincrbyfloat | 为哈希表 key 中的指定字段的整数 / 浮点数 值加上增量 |
8 | hsetnx | 只有在字段 field 不存在时,设置哈希表字段的值。 |
6.redis有序集合Zset(sorted set)
序号 | 命令 | 解释 |
---|
1 | zadd key score1 member1 [score2 member2] | 向有序集合添加一个或多个成员,或者更新已存在成员的分数 |
2 | zrange key start stop [WITHSCORES] | 通过索引区间返回有序集合指定区间内的成员 |
3 | zrangebyscore key 开始score 结束score | 通过分数返回有序集合指定区间内的成员 |
4 | zrem key 某score下对应的value值 | 移除有序集合中的一个或多个成员 |
5 | zcard / zcount key score区间 / zrank key values值 | 获得下标值 |
6 | zscire key 对应的value | 获得分 |
7 | zrevrank key values 值 | 逆序获得下标值 |
8 | zrevrange | 返回有序集中指定区间内的成员,通过索引,分数从高到低 |
9 | zrevrangebyscore key 结束score 开始score | 返回有序集中指定分数区间内的成员,分数从高到低排序 |
参考文档: 菜鸟教程.