数据库操作
- keys * 当前库的所有key
- set key value 在当前库中添加key-value值
- exists key 判断当前key是否存在
- type key 查看你的Key是什么类型
- del key 删除指定的key
- unlink key 根据value选择非阻塞删除,仅将keys从keyspace元数据中删除,真正的删除会在后续异步操作中
- expire key time 给指定的key指定time过期时间
- ttl key 查看当前Key 还有多少秒过期,如果是-2表示已经过期
- select 切换数据库 : select 0
- dbsize查看当前数据库的key的数量
- flushdb 清空当前库
- flushall 通杀全部库
字符串类型操作
- get key 获取当前Key的value值
- append key value 向key追加value值
- strlen key 获取key的值的长度
- setnx key value 只有Key不存在的时候,才设置value
- incr key 将Key中存储的数字值增加1,只能对数字值操作,如果为空,新增值1。这种操作是原子性的,不会被线程调度机制打断。
- decr key 将key中储存的数字值减1,类似于incr
- incrby/decrby key 步长: 将key 中存储的值按照步长增减。
- mset key value key value :同时设置一个或多个key-value对
- mget key key…:同时获取一个/多个value
- msetnx key1 value1 key2 value2 同时设置一个或多个key-value对,当且仅当给定key不存的时候。
- 以上mxx操作,原子性,一个失败都失败。
- getrange key 起始位置 结束位置:获取值的范围,类似于java的substring
- setrange key 起始位置 value :覆写value从起始位的数据
- setex key 过期时间 value : 设置键值的同时,设置过期时间,单位为秒
- getset key value:设置新值同时获得旧值
列表类型操作
- lpush/rpush key value1 value2… 从左边/右边插入一个/多个值
- lpop/rpop key value1 value2… 从左边/右边取出一个/多个值。取出之后,原来的list数据发生了变化。如果值被取完,那么这个键就不存在了。
- lrange key start stop 按照索引下标获得元素(从左到右)eg: lrange key1 0 -1表示取所有的值
- rpoplpush key1 key2 从key1列表右边取出一个值,放在key2列表左边
- lindex key index :按照索引下标获得元素(从左到右)
- llen key 获得列表长度
- linsert key before/after value newvalue 在value前面/后面插入newvalue新值
- lrem key n value 从左边删除n个value,从左到右。这里的value也即在list列表中出现过的,可以用于删除重复的数据。
- lset key index value 将列表key下标为index的值替换成value
list的数据结构是快速链表quickList
集合类型操作
- sadd key value1 value2… 将一个或多个元素加入到集合key中,已经存在的value值会被忽略
- smembers key 取出该集合的所有值
- sismember key value 判断集合key是否为含有该value值,有1,没有0
- scard key 返回该集合的元素个数
- srem key value1 value2, 删除集合中的某个元素
- spop key 随机从该集合中取出一个值,当集合中的值取完,这个集合也不存在了。
- srandmember key n 随机从该集合中取出n个值,不会从集合中删除
- smove source destinaton value 把集合中一个值从一个集合移到另一个集合
- sinter key1 key2 返回两个集合的交集元素
- sunio key1 key2 返回两个集合的并集元素
- sdiff key1 key2 返回两个集合的差集元素,key1中的不包含key2
哈希类型操作
是一个string类型的field和value的映射表,hash特别适合用于存储对象,类似kava里面的Map<String,Object>
|