这篇先写redis的命令以及数据结构 String hash list set zset,下一篇会代码举例其使用
1. redis常用命令
// 设置key
set key1 value1
// 获取key
get key1
// 批量设置
mset key1 value1 key2 value2
// 批量获取
mget key1 key2 key3
// 删除key 以及对应的value
del key1
// 判断是否存在key
exists key
// 10秒后过期 时间自己设定
expire key 10
// 1000秒后过期 时间自己设定
pexpire key 1000
// 查看key 的过期时间
ttl key
// 让此key不过期
persist key
// 获取所有的key
keys *
// 查看 dw开头的key 根据需要即可
keys dw*
// 查看dw开头,第三个字母是h到l的key
keys dw[h-l]*
// 获取key的数据类型
type key
// 查看当前空间大小
dbsize
// 等等
2. redis数据结构
1. 字符串
就是键值对字符串,value可以是 “1”,“1001”,也可以是json。单个value值最大512MB,一般情况下足够了。
使用场景:
缓存 计数器等
命令:
// 获取key
get key
// 设置 key value值
set key value
// 删除key
del key
// 自加1
incr key
// 自减1
decr key
// 自加n
incrby key n
// 自减n
decrby key n
// key不存在 才设值,如果存在,失效
setnx key value
// 批量获取key的value值
mget key1 key2 key3
// 批量设置键值对
mset k1 v1 k2 v2
// 给key设置新的值,返回旧值
getset key value
// 给key追加value
append key value
// 获取key对应的value的长度
strlen key
// 给key的值增加 数值,可以是整数 可以是小数
incrbyfloat key n
// 获取字符串指定下标的值
getrange key start end
// 给指定下标设置新的值
setrange key index value
2. hash
hash是key-value结构
hash的key还是string,value分为两部分,filed和value
filed可以理解为属性,value可以理解为值
field不能相同,value可以相同
命令:
// 获取hash key对应的field的value
hget key field
// 设置hash key对应的field的 value
hset key field value
// 删除key对应的field的value
hdel key field
// 获取key所有的field和value
hgetall key
// 判断key是否有field属性
hexists key field
// 获取key中field的数量
hlen key
// 批量获取key的field
hmget key field1 field2
// 批量设置key的field value值
hmset key field1 value1 field2 value2
// 返回key 对应的所有field的value
hvals key
// 返回key对应的所有field
hkeys key
3. list
命令
// 从右边添加
rpush key value1 value2 ......
// 从左边插入
lpush key value1 value2 ......
// 在list指定的值 前 后 插入 新的值
linsert key before|after value newValue
// 从列表左侧弹出一个item
lpop key
// 从列表右侧弹出一个item
rpop key
// 根据count值,从列表删除所有value相等的项
lrem key count value
// count>0 从左到右,删除最多count个value相等的项
// count<0,从右到左,删除最多math。abs(count)个value相等的项
// count=0,删除所有value相等的项
// 按照索引范围修剪列表
ltrim key start start end
// 获取列表指定范围所有item 查询 包含end
lrange key start end
// 获取列表指定的item
lindex key index
// 获取列表长度
llen key
// 设置列表指定索引值为新的值,即更改某个位置的值
lset key index new Value
4. set 无序集合
命令
// 向集合key添加 element , 如果element存在 添加失败
sadd key element
// 将集合key中的element移除掉
srem key element
// 计算集合中元素的个数
scard key
// 从集合中随机获取一个元素
srandmember key
// 取出集合中的所有值
smembers key
// 判断集合中某个元素是否存在
sismember key value
5. zset 有序集合
命令
// 添加score和element score可重复,element不可重复
zadd key score element
// 删除元素
zrem key element
// 返回元素的分数
zscore key element
// 增加或减少元素的分数
zincrby key increScore element
// 返回元素的总个数
zcard key
// 返回指定下标的element
zrange key begin end
// 返回有序集合内在指定分数范围内的个数
zcount key minScore maxScore
// 删除指定排名内的升序元素
zremrangebyrank key start end
// 删除指定分数内的升序元素
zremrangebyscore key minScore maxScore