《Redis内存数据库》Redis数据类型和基本操作
- 2020 年 9 月 16 日
- 筆記
- 《Redis内存数据库》, Redis
前言
redis 有多种数据类型,兼容应用的开发。
说明
第一种数据类型:string(字符串)
set key value — 设置key和key对应的value值
get key — 获取key对应的value值
案例:
incr key —对应的value 自增1,如果没有这个key值 自动给你创建创建 并赋值为1
decr key —对应的value 自减1
incrby key num —对应的value 增num
decrby key num —对应的value 减num
mset key1 value1 key2 value2 一次设置多个值
mget key1 key2 一次查询多个值
setrange key offset value:把字符串的offset偏移字节改成value,如果偏移量 > 字符串长度,该字符自动补0x00
append key value :把value追加到key 的原值上
getrange key start stop:获取字符串中[start, stop]范围的值
getset key nrevalue:返回旧值并设置新值
incrbyfloat key 0.7: 自增浮点数
strlen key:取指定key的value值的长度
setex key time value:设置key对应的值value,并设置有效期为time秒。
ttl key 查询剩余有效时间
第二种数据类型:hash(字典)
案例:
hset key filed value — 设置hash的键值。
hget key filed — 获取hash的值。
HMSET key field value [field value …] — 批量设置hash的键值
HMGET key field [field …] — 批量查询hash的值
HGETALL key — 查询key的全部键值对信息
HDEL key field [field …] — 删除hash中的其中一个或者多个键值对
HEXISTS key field — 是否存在默个键值对
HKEYS key — 查询hash 的全部键值信息
HVALS key — 查询hash 的全部键值对应的value信息
HINCRBY key field increment — 某一个键值上加increment 偏移量
HINCRBYFLOAT key field increment — 某一个键值上加increment 浮点数的偏移量
HLEN key — 哈希键对应的键值对数量
HSETNX key field value — hash的键不存在时才加入并赋值。
第三种数据类型:list(列表)
结构:
key value
key [6 , 5 , 4 , 3 , 2 , 1]
下标 0 1 2 3 4 5(-1)
案例:
LPUSH key value [value …] — 写入数据到list, 先进先出原理
LINDEX key index — 查询list 某个下标的数据
LRANGE key start stop — 查询list 数据。
LPUSHX key value — 存在键加入,不存在不创建key值。
LINSERT key BEFORE|AFTER pivot value — 在某个元素之前或者之后插入数据
RPUSH key value [value …] — 将数据插入链表,链表是先进先出
RPUSHX key value — 存在key 则插入,否则无效,链表的操作。
RPOPLPUSH source destination — 复制list的最后一个数据
LREM key count value — 删除count个元素。
LTRIM key start stop — 保留从start到stop的元素
LSET key index value — 修改某个角标上的值。
LPOP key — 获取第一个元素,并且删除。
第四种数据类型:set(集合)
结构:
key value
key (zhangsan , lili , hanmeimei, lilei )
案例:
sadd key member [member …] — 添加数据到set可以多个
SCARD key — 查询set数量
SMEMBERS key — 查询集合中的全部元素
SUNION key [key …] — 获取多个集合的并集。
SINTER key [key …] — 获取多个集合的交集
SDIFF key [key …] — 第一个key 和其他key的差级
SDIFFSTORE destination key [key …] — 将差集的值,存入destination集合中
SINTERSTORE destination key [key …] — 将交集的值,存入destination集合中
SUNIONSTORE destination key [key …] — 将并集的值,存入destination集合中
SISMEMBER key member — 判断集合中是否在member 成员
SMOVE source destination member — 移动成员从集合到另一个集合
SPOP key [count] — 随机删除count个元素,并且返回被删除的元素
SRANDMEMBER key [count] — 顺序返回count个元素
SREM key member [member …] — 删除集合元素
SSCAN key cursor [MATCH pattern] [COUNT count] — 迭代集合的元素
第五种数据类型:sortset(有序集合)
结构:
key value
key (scores zhangsan ,scores lili ,scores hanmeimei,scores lilei )
0 1 2 3(-1)
案例:
ZADD key [NX|XX] [CH] [INCR] score member [score member …] — 增加一个带数量的元素
ZINCRBY key increment member — 给某个元素设置数量
ZREVRANGE key start stop [WITHSCORES] — 排序显示集合元素, WITHSCORES 表示额外打印分数
ZCARD key — 查询有序集合元素
ZCOUNT key min max — 查询在min到max区间内的元素个数
ZRANGE key start stop [WITHSCORES] — 根据脚标查询有序集合,WITHSCORES带分数显示。
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] — 通过分数返回元素,WITHSCORES带分数显示
ZRANK key member — 获取有序集合指定元素的角标。
ZREM key member [member …] — 按照元素名称移除指定元素
ZREMRANGEBYSCORE key min max — 按照分数范围移除指定元素
ZREVRANK key member — 获取某个元素的排名
ZSCORE key member — 获取某个元素的分数
其他特殊点:
cat /tmp/data.txt | redis-cli -a 123456 -- 将文件data.txt的redis命令交给redis-cli 执行。
总结
Redis的这些数据类型都是为了满足当前互联网的需求,简化一些特定场景的数据操作,并且快速。
参考://doc.redisfans.com/list/blpop.html