配置文件(需要另学习)
查看配置 CONFIG GET * 查看所有配置
修改配置 CONFIG SET loglevel “notice” 修改日志级别
五种类型
string(字符串)//缓存就用它就行,最大512m,基本类型,这个可以用于任何场景
hash(哈希)//对应的是map类型(key-value),储存一条信息多个值//用于储存东西
list(列表)//有序集合,可以入栈,出栈 //用于消息队列
set(集合) //无序集合,不能重复//关系处理,1、共同好友 2、利用唯一性,统计访问网站的所有独立ip
zset(sorted set:有序集合) 不能重复(score可以重复)等于集合加上权重 //1、排行榜 2、带权重的消息队列
BitMaps 位图
HyperLogLog 超小内存唯一
GEO 地理位置
详细说明(很多不常用)
通用命令(常见6个)
keys 查看所有key,查看所用键 //输入keys * (不常用,主要是效率不高,可以主从复制)
keys 后面跟着通配符,比如keys he* 和 keys he[d-l] 都可以
dbsize 查看大小,查看数据库大小 //拥有几条数据
exists key 查看key是否存在,用于判断
del key[ key …] 删除key,可以同时删除多个
expire key second 设置过期时间,可以用指定时间,可以毫秒
ttl key是查看过期时间 -1 是没有设定时间,-2是已经过期
persist key 删除过期时间 变成 -1
type key 查看key的数据类型
字符串
值可以是字符串,数组,二进制,josn ,xml ,序列化后,都可以存进去
不能大于512M
使用场景:缓存,计数器,分布式锁
get set del
incr key 自增1 decr key 自减1 incrby key 5 自增5 decrby key5 自减5
set key 是否有都添加 setnx key 不存在才添加 可以认为是插入 set key xx 存在才添加 可以认为是更新
mget li zhi 批量获取 mset li 123 zhi 456 批量设置
getset key new_value //设置新值,返回老值
append key value //在值的后面追加
strlen key //返回字符串长度(中文为两个字节,一个汉字
incrbyfloat key //自增浮点型,可以传负值,进行减
getrange key start end //获取指定位置值
setrange key start end //设置指定位置的值
哈希
值,为多个数据,可以理解为,mysql里面的一条数据。
hget key field //获取key里面的字段的值
hset key field value //设置key里面字段的值
hdel key field //删除key里面属性的值
key可以用复杂的表示比如
hset user:1:info age 18
hexists key field //查看key里面的字段存在吗
hlen key //获取key的字段数量
hmset key field value [...] //为key 设置多个属性和值
hmget key field [...] //获取多个属性值
hgetall key //获取所有key的属性和值
hvals key //只返回值,不返回属性
hkeys key //只返回属性,不返回值
hsetnx key//只能设置存在的key
hincrby key value 5 //这key字段里面的值自增5
hincrbyfloat key value 1.1 //设置key字段自增浮点
列表(消息队列)
值是一个队列,可以push,操作。有序的,可以重复的。列表。不是二级结构
增
rpush listkey c b a //从右边插入三个元素 c b a
lpush listkey c b a //从左边插入c b a,其实插入之后是 a b c
linset listkey before/after b value //在b元素的前后插入
lpop listkey //从左边删除,弹出一个key
rpop listkey //从右边弹出一个key
删
lrem key count value //删除指定的value 的值,由于里面是可以重复的所以
count >0 //从左往右删除 count 个
count <0 //从右往左删除 count个
count=0 //删除所有value
ltrim listkey 1 4 //修剪操作,只保留下标为1到4 之间的
查
lrange listkey 0 2 //查询指定范围的value,下标0到2,-1为最后一个
lindex listkey 5 //查询下标为5的元素
llen listkey //获取长度
改
lset 3 value //把下标为3的value修改为新值
blpop //阻塞左边弹出,等待时间
brpop //右边阻塞
集合
不能重复,无序,支持集合间操作,不是二级结构(社交,标签,随机数)
sadd key element //添加,元素,如果已经存在会失败
srem key element //删除元素
scard key //计算元素个数
sismember key element //判断元素是否存在
srandmember key count //随机取出,count个元素
spop key //随机弹出一个,会删除
smembers key //会取出所有数据,无序的
集合直接操作
sdiff key1 key2 //算出差集 ,不一样的地方
sinter key1 key2 //算出交集 ,一样的地方
sunion key1 key2 //算出并集 ,所有的地方
有序集合(排行榜)(比较复杂)
他的值,有两个部分,一个是score 分数,一个是值
有序,无重复元素,score 可以重复
zadd key score element [..] //同时插入多个
zrem key element[..] //删除多个元素
zscore key element //获取元素分数
zrank key element //根据分数获取排名(从小到大)
zincrby key increscore element //修改元素的分数,自增increscore个
zcard key //获取key的元素个数
zrange key stat end [withscores] //查找指定下标的元素,打印,【是否带分数】
zrangebyscore key min max [withscores] //查找指定分数的元素,打印,【是否带分数】
zcunt key min max //根据分数统计
zremrangbyrank key start end //删除指定排名(下标)内的元素
zremrangbyscore key min max //删除指定分数内的元素
zrevrank 从大到小 zrank
zrevrange 从大到小 zrange
zrevrangebyscore 从大到小 zrangebyscore
zinterstore 交集
zunionstore 并集