《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的这些数据类型都是为了满足当前互联网的需求,简化一些特定场景的数据操作,并且快速。