常识
- 单进程,是对epoll函数的封装来做到的
- 默认16个库,默认端口6379,数据库角标从0开始,redis 下标都是从0开始
- 五大数据类型
- String (字符串)
- 最基本的类型,一个key对应一个value
- 二进制安全,redis的string可以包含任何数据.比如图片或序列化对象
- 一个redis中字符串value最多可以为512M
- Hash (哈希,类似与java中的map)
- hash是一个键值对组合
- 是一个string类型的field和value的映射表,特别适合用于存储对象
- 类似java中的Map<String,String>
- List (列表)
- 简单的字符串列表,按照插入的顺序排序,可以添加一个元素到列表的头部或者尾部
- 底层是个链表
- Set
- String类型的无序集合,底层通过hashtable实现的
- Zset(sorted set :有序集合)
- 一样也是string类型元素的集合,且不允许重复成员
- 不同的是每个元素都会关联一个double类型的分数
- redis正是通过分数来为集合中的成员进行从小到大的排序,zset的成员是唯一的,但是分数却可以是重复的
- String (字符串)
基本命令
- select可以切换库
- Dbsize 查看当前库的k的数量
- FALUSHDB:清空当前库
- key关键字
- keys * 查看所有key
- exists key 查看某个key是否存在
- move key db 将这个key移动到别的数据库
- expire key 秒钟:为给定的key设定过期时间,过期移除系统
- ttl key:查看还有多少秒过期-1表示永不过期.-2表示已经过期
- DEL key :移除key
- type key:查看key是什么类型
设置相同key则覆盖
- String 类型
- get key 获取key值
- strlen 查看key值长度
- incr key值+1
- decr key值-1
- incrby key 数 key值+数
- decrby key 数 key值-数
- getrange/setrange key start end 获取/设置指定长度值
- setex key 存活时间 值 设置存活时间的key
- setnx key value 如果key不存在则设置
- mset/mget/msetnx key value 设置/得到/设置如果不存在 多个值,设置时如果一个存在则都存入失效
- List类型 单值多value
- LPUSH key [v1,v2,v3…] 存入list
- RPUSH key [v1,v2,v3…] 存入list
- LRANGE key v1 v2 取出指定长度的数 -1 代表全取
- lpop/rpop 弹出元素
- LREM list key N 移除指定元素指定N个
- ltrim key index0 index1 截取index0到index1的值后再赋值给key
- rpoplpush list1 list2 将list1的尾元素发送值list2的头元素
- lset key index value 设置指定index的值为value
- linsert key before/after 值1 值2 在指定值1前或者后插入值2
总结:字符串链表,左右都可以插入如果键不存在,则创建新的链表,如果健已经存在,新增内容,如果值全都移除,对应健消失,对头和尾效率高,但是如果对中间元素进行操作效率较低
- set
- sadd set0 value1 value2… 设置set值
- SMEMBERS set0 获取set值
- scard 获取集合中的元素个数
- srem set0 value 删除集合中的某个元素
- srandmember key 某个整数(随机出几个数) 在key数字池中随机出几个数
- spop 随机出栈
- smove key01 key02 在key01中的某个值,作用是将key01中的某个值赋值给key02
- 数学集合类:差集sdiff 在第一个里面,且不在后面任何一个里面
- 交集sinter
- 并集sunion
- Hash(kv模式不变,但v是一个键值对)
- hset key k v 存储一个哈希
- hget key k 获取一个哈希
- hmset/hmget key [k1 v1 k2 v2]… 设置/获取多个
- hdel key k 删除key下的k属性
- hgetall key 获取key下的所有值
- hlen key 查出key中键值对的长度
- hexists key 判断key是否存在
- hkeys/hvals key 获取key下所有的k值/v值
- hincrby key k v key中 k的 值+v
- hincrbyfloat 同上,+float类型
- Zset 有序集合(在set的基础上+上一个score值,zset是 k1 score1 v1 score2 v2)
- zadd zset01 60 v1 70 v2…为zset赋值
- zrange key v1 v2 withscores 获取v1-v2范围的值,-1为全部获取,连值带元素
- zrangebyscore 开始score 结束score 获取score之间的key (包含 limit 开始下标 截去步数
- zrem key value 作用是删除元素
- zcard 统计个数
- zcount key score区间 统计区间个数
- zrank zset key 获取下标
- zrevrank key v 作用是逆序获得下标值
- zrevrange 逆序获得
- zrevrangebyscore key 结束分数 -开始分数