通用命令
- keys (查看所有的键值 一般生产环境不推荐使用)
- dbsize (得到数据库的大小)
- exists key (判断key是否存在)
- del key [key…] (删除key)
- expire key second (设置key的过期时间)
- type key (查看key的数据类型)
- ttl key(查看key剩余的过期的时间)
- persist key (去掉key的过期时间)
数据结构和内部编码
单线程
单线程为什么那么快
1.纯内存
2.非阻塞IO
字符串
key value的结构类型
使用场景
缓存
计数器
分布式锁
…
一些常用的api
get # 获取key对应的value
set #设置key-value
del #删除key-vlaue
incr # key自增1,如果key不存在,自增后get(key)=1
decr # key自减1,如果key不存在,自减后get(key)=1
incrby # incrby key k key自增1.如果key不存在,自增后get(key)=k
descrby # decr key k key自减1 如果key不存在自减后get(key)=-k
set key value #不管key是否存在,都设置
setnx key value # key 不存在 才设置
set key value xx #key存在 才设置
mset # 可同时设置多个key_value的值
mget # 可通过多个key获取对应的value
getset # get key newvalue # set key newvalue 并返回旧的value
append key value #将value追加到旧的value
incrbyfloat #incrbyfloat key 3.5 增加key对应的值是3.5
getrange #getrange key start end 获取字符串指定下标所有的值
hash
hget key field # 获取hash key对应的field的value
hset key field value # 设置hash key对应field的value
hdel key field #删除hash key对应field的value
hexists key field #判断hash key是否field
hlen key#获取hash key field的数量
hmget # hmget key field1 field2…fieldn 批量获取hash key的一批field的值
hmset # hmset key field1 value1…fieldn valuen 批量设置hash key的一批field value
hgetall key #返回hash key 对应所有的field和value
hvals key #返回hash key 对应所有的field的value
hkeys key#返回hash key对应所有的field
hsetnx key filed value #设置hash key 对应field的value(如field已经存在,则失败)
hincrby key field intCounter #hash key对应的field的value自增intCounter
hincrby key field floatCounter #浮点数版
list
rpush key value1 value2…valuen # 从列表右端插入(1-N个)
ipush key value1 value2…valuen #从列表左侧插入值(1-N个)
linsert key before|after value newValue #在list指定的值前|后插入newValue
ipop#从列表的左边弹出一个item
rpop #从列表的右侧弹出一个item
…