redis 基础命令
String 常用命令
- 设置值
set key value [nx][xx][ex seconds] [px millisseconds]
// nx 健必须不存在, 才能设置成功, 用于添加
// xx 与nx 相反, 健必须存在,才能设置成功, 用于更新
// ex seconds 为健设置秒级过期时间
// px millseconds 为健设置毫秒级过期时间
// 例1
set java version17
// 例2
set java version17 nx ex 60
- setex 与setnx
setnx 与 set nx 一致
例如:
setnx java1 ver17
set java1 ver17 nx
效果一样的
setex key 60 value 与set key value ex 60 一样
// setnx 适用于多线程同时执行setnx key value , 只有一个线程执行成功, 可以用于分布式锁的实现。
- exists key 判断key 是否存在
- get key 获取key 的值 没有返回 (nil)
- mset key value [key value …] 批量设置键值
// 例如
mset java 17 python 3 php 2
// 可以提高redis 的性能, 节省网络开销, n个key-value一起存
- mget key [key …]
// 例如:
mget java python php
// 可以提高redis 的性能, 节省网络开销, n个key一起取
- incr key 计数
set java 0
incr java 给java 的值加一
// 当java 的值是整数是 返回 自增后的结果
// 当java的值不是整数时 返回错误
// 如果java 这个key 不存在, 按照值为0自增, 返回结果为1
- decr key 自减
- incrby key incrment 自增指定数字
10.decrby key decrment 自减指定数字 - incrbyfloat key incrment 自增浮点数
String 不常用命令
- append key value 追加值
- strlen key 计算字符串长度
- getset key value 与set 值一样, 但是getset 会返回一个原来的值
- setrange key offset value // 改变某个位置上的值
set redis pest
setrange redis 0 b => get redis => best
- getrange key start end 获取部分值
hash 的常用命令
- hset key field value // 设置值
hset user:1 name tom
- hget key field // 获取值
hget user:1 name
- hdel key field 删除field
- hlen key 计算field 的数量
- hmset key field value [field value …]
hmset user:1 name mike age 13 city tianjin
- hmget key [field …]
hmget user:1 name city
- hexists key field //判断 field 是否存在
- hkeys key 获取所有的field
- hvals key 获取所有的value
hvals user:1
- hgetall key 获取所有的key - value 的值
list的常用命令
- rpush key value [value …]
// 从右向左插入元素
rpush listkey c b a
- lrange listkey 0 -1 从左到右获取列表的左右元素
- lpush key value [value …]. 从左向右插入元素
- linsert key before | after pivot value 向某个元素的前面或后面插入元素
- lrange key start end 获取指定范围的列表
- lindex key index 获取列表指定下表的元素
- lien key 获取列表长度
- lpop key 从列表左侧弹出元素
- rpop key 从列表右侧探出元素
- lrem key count value 删除指定元素
- ltrim key start end 按照指定范围修建列表
- lset key index newValue 修改指定下表的元素
- blpop key [key …] timeout. brpop key [key … ] timeout
blpop list:text 3
set 的常用命令
- sadd key element [element …]
sadd setkey a b c
- srem key element [element …]. 删除
- scard key 计算元素个数
- sismember key element 判断元素是否存在集合中
- srandmember key [count] 随机返回指定个数的元素
- spop key 从集合中随机弹出元素
- smembers key 获取所有元素
- sinter key [key …] 获取多个集合的交集
- sunion key [key …] 获取多个集合的并集
- sdiff key [key …]
sdiff user:1:follow user:2:follow
zset 有序集合
- zadd key score member [score member …]. 添加
zadd user:ranking 80 kris 99 frank 200 tim 240 martin
zadd 可以配合nx, xx , ch, incr使用
nx member 必须不存在 才能添加成功 用于新增
xx member 必须存在, 才能成功 用于更新
ch 返回此次操作后, 有序集合和分数发生变化的个数
incr 多score 做加法
- zscore key member 计算某个成员的分数
- zrank key member 从低到高返回排名
- zrevrank key member 从高到低返回排名
- zrem key member [member …]. 删除成员
redis 每种数据类型都有其命令, 不同的数据类型也可以使用不同的场景。