通用命令
- keys pattern 查看符合要求的所有key
- del (key) [key ...] 删除一个指定的key
- exists 判断key是否存在
- expire 给一个key设置有效期,单位是秒,有效期到时该key会被自动删除 (返回-2就是自动删除了)
- ttl 查看一个key的剩余有效期
- help [命令] 查看该命令的用法
String类型
- set key value 添加一个键值对
- get 根据key获取value
- mset key value [key value ...] 批量添加key和value
- mget key [key ...] 获取多个key所对应的值
- incr key 让一个整数自增1
- incrby key 让一个整数自增,可以自定义步长
- incrbyfloat key 浮点数自增,可以自定义步长
- setnx key value 添加一个String类型的键值对,前提是key不存在,否者不执行添加
- setex key 有效期 value 添加一个String类型的键值对,并设置有效期
key的结构
- redis的key允许有多个单词形成层级结构,多个单词之间用':'隔开
- 项目名:业务名:类型:id
Hash类型
- hash类型,也叫散列,其value是一个无序字典,类似于java中的HashMap结构
- 使用String结构是将对象转化为JSON字符串后存储,很不方便
- Hash结构可以将对象中的每个字段独立存储,可以针对单个字段做CRUD
- 常见用的命令
- hset key field value 添加或修改hash类型key的field的值
- hget key field 获取一个hash类型key的field的值
- hmset 批量添加多个hash类型key的field的值
- hmget 批量获取多个hash中的key的field的值
- hgetall 获取hash类型key中所有的field和value
- hkeys 获取一个hash类型的key中所有的field
- hvals 获取一个hash类型中的所有的value
- hincrby 让一个hash类型key的字段值自增并指定步长
- hsetnx 添加一个hash类型key的field值,前提是这个fied不存在,否则不执行
List类型
- lpush key element... 向左侧插入一个或多个元素
- lpop key 移除并返回左侧第一个元素,没有返回nil
- rpush key element... 向列表右侧插入一个或多个元素
- rpop key 移除并返回列表右侧的一个元素
- lrange key start end 返回指定范围的所有元素
- blpop和brpop 与lpop和rpop类似,只不过在没有元素时等待指定时间,而不是直接返回nil
set类型
- sadd key member... 向set中添加一个或多个元素
- srem key member... 移除set中的指定元素
- scard key 返回set中元素的个数
- sismember key member 判断一个元素是否存在于set中
- smembers key 获取set中所有的元素
- sinter key1 key2... 求key1与key2的交集
- sdiff key1 key2... 求key1与key2的差集
- sunion key1 key2.. 求key1与key2的并集