文章目录
Redis 五大数据类型
PS1 : Redis 命令API
这些命令是不需要死记硬背的, 需要用到的时候, 我们去查一下 API 即可
PS2: redis 数据默认有 16 个库, 默认是 DB 0
切换到库DB 1 select 1
每个库都是单独的个体, 数据之间不进行共享数据
清空数据库
flushdb
清除当前库
flushall
清除所有库
1. String
get key
获取到key的值set key value
设置键值对, 如果key存在, 会进行覆盖原先的值setnx key value
设置键值对, 如果key存在, 则不会添加进去keys *
查看所有的键keys *a
查看以a开头的键keys a*
查看以结尾的键type key
查看key键的类型expire key seconds
设置key的过期时间ttl key
查看key的过期时间, -1为永不过期, -2 为过期set key value ex seconds
创建键值对并且设置key的过期时间
append key value
字符串的拼接strlen key
查看key的长度incr key
累加decr key
累减incrby key increment
在key上增加increment值decrby key decrement
在key上减少decrement值
getrange key start end
取得key值的范围内的值, start, end 为索引下标, end=-1表示无穷setrange key start value
key值从start开始为valuemset key1 value1 key2 value2 ...
设置多个键值对mget key1 key2 ...
获取多个key的值msetnx key1 value1 key value2 ...
设置多个无重复键的键值对
2. hash
-
hset key field value
可以理解成设置对象( key{field = value;} ) -
hget key field
获取key对象field字段的值( key.getField() )
-
hmset key field1 value1 field2 value2 ...
同时设置多个字段键值对, 可以理解成如下内容:key { field1 : value1, field2 : value2, ... }
-
hmget key field1 field2 ...
同时该对象key下获取多个字段的值
-
hgetall key
获取key对象所有的键值对 -
hlen key
得到key对象的属性字段个数 -
hkeys key
得到key对象的所有属性字段 -
hvals key
得到key对象的所有属性字段的值
-
hincrby key field increment
将key对象的field字段的值增加increment大小 -
hincrbyfloat key field incrementFloat
将key对象的field字段的值增加incrementFloat浮点值小数大小
-
hdel key field1, field2 ...
删除key对象的field属性字段
-
hexists key field
判断key对象中field字段是否存在, 存在返回 1, 不存在为 0
3. list (一个列表下可以存放相同的值)
lpush key value1 value2 value3 ...
l表示left, 创建一个key名称的列表, 从左边(列表头插) 依次插入value1, value2…rpush key value1 value2 value3 ...
r表示right, 创建一个key名称的列表,从 右边(列表尾插) 依次插入value1, value2…, 相当于 lpush 的逆序lrange key start end
得到列表key从start到end的value值
lpop key
从key列表左边进行取出值, 取出后原列表会删除该值rpop key
从key列表右边进行取出值
llen key
查看key列表的长度lindex key index
得到key列表下标为index的值, 不会删除该index下的值lset key index value
修改key列表下index下标的值为value
linsert key before|after value newValue
在key列表的value的前面(before)或后面(after)插入值newValue
ltrim key start stop
截取key列表下标从start到stop的值, 不在范围内的会被删除del key
删除key列表
type key
查看key的类型
4. set (一个列表下不可以存放相同的值, 会自动去除)
sadd key value1 value2 ...
创建一个key的(set)集合, 无序的插入value的值, values的值不可以重复, 重复的话会自动去除smembers key
查看key(set)集合的列表值scard key
查看key(set)集合的值的个数sismember key member
判断key(set)集合中是否有member这个值
srem key member
删除key(set)集合中的member值spop key [count]
弹出key(set)集合中的count个值, 默认为1
srandmember key count
随机获取key(set)集合中的count个值
PS: 用于活动, 或者抽取某几个幸运者, 一般可以使用这个比较方便
smove key1 key2 member
将key1(set)集合中的member值取出 (key1中删除此member) 并且移动放入到key2(set)集合中.
sdiff key1 key2 ...
(找差值) 找出在key1(set)集合中有而在key2等其他(set)集合中没有的members值
sinter key1 key2 ...
(找交集) 找出在key1(set)集合中有并且在key2等其他(set)集合中也有的共同的members值
sunion key1 key2 ...
(找并集) 找出key1(set)集合, key2(set)集合等等的members进行合并后的members
5. zset (有序的 set, 通过绑定一个 int 型score 升序实现)
可以用于用户的积分排名等操作.
zadd key score1 value1 score2 value2 ...
创建一个key名称的(zset)集合, 依次插入带有分数score的值value, 相同值的score会与插入顺序一样, 先插入的在前面, 后插入的在后面zrange key start end
得到key(zset)集合的索引下标从start到end的值zrange key start end withscores
得到key(zset)集合的索引下标从start到end的带score的值
zrank key member
获得key(zset)集合中member的下标zscore key member
获得key(zset)集合中member的分数score值zcard key
获得key(zset)集合中值的个数zcount key min max
统计出key(zset)集合中分数score在min~max间的个数, 包含边界值zrangebyscore key min max [withscores]
得到key(zset)集合中分数score在min~max间的具体内容值, 包含边界zrangebyscore key (min (max [withscores]
得到key(zset)集合中分数score在min~max间的具体内容值, 有(
即表示不包含min和max
zrangebyscore key min max limit offset count
得到key(zset)集合中包含边界值的[min,max]的具体值, 然后进行分页limit处理, 从这个得到的集合中再次处理, 最终返回从offset下标开始的, 数量为count个数的内容.(limit 是进行的子检索)
zrem key member ...
删除key(zset)集合中的members值