Redis是一款内存告诉缓存数据库,数据模型为key-value模式,可用于数据缓存和页面缓存两种。①redis master-slave(主-从)模式应用;②Redis支持数据的持久化,可以将内存中的数据保存在磁盘上。‘在redis.conf配置文件的第17行,修改为yes,可以进行后台启动。
1、基础键操作(KEY)
- exists key - - - - 测试指定的key是否存在
- del key1 key2 key3……keyN - - - - 删除指定的key
- type key - - - - 返回给定key的value类型
- keys pattern - - - - 返回匹配指定模式的所有key
- rename oldkey newkey - - - - 将key进行重新命名
- dbsize - - - - 返回当前数据库的key的数量
- expires key seconds - - - - 为key设置指定的过期时间
- ttl key - - - - 返回key的剩余的过期的秒数
- select db_index - - - - 选择redis数据库
- flushdb - - - - 删除当前数据库中的所有的key (数据库入门学习之《从删库到跑路》(^_^)~)
单个value的最大上限为1GB。
2、STRING类型操作
- set key value - - - - 设置key对应的值为string类型的value
- mset key1 value1 key2 value2 …… keyN valueN - - - - 一次性设置多个key的值
- incr key - - - - 对key的值进行加加++ 操作,并返回新的值,类似于(i++、$x++)操作
- decr key - - - - 与incr正好相反,做的是减减操作
- incrby key integer - - - - 同incr,只是此是加上指定的值,decrby与此正相反
- append key value - - - - 给指定key的字符串值追加value操作,返回整形
- substr key start end - - - - 返回截取过的字符串值,注意:为闭区间
3、LIST类型操作(双向链表)
- lpush key string - - - - 在key对应list的头部添加字符串元素
- rpop key - - - - 从list的尾部删除元素,并返回删除元素
- lrange key start end - - - - 返回指定区间内的元素,下标从0开始
- llen key - - - - 返回key对应的list长度,key不存在返回0,key类型不是list,则返回false
- rpush key string - - - - 同上,在list尾部添加字符串元素
- lpop key - - - - 从list的头部删除元素,并且返回元素
其中{ lpush → rpop } { rpush → lpop } 可配合使用
- ltrim key start end - - - - 截取list,保留指定区间的元素
4、SET集合类型操作
redis的set是string类型的无序集合(并、交、差集)。适用场景:QQ好友推荐,最大可包含2^32-1个元素。
- sadd key member - - - - 添加一个string类型元素到key对应的set集合中(细细理解),成功则返回1。如果元素已经存在在集合中,则返回0;如果key对应的set集合不存在,则返回false
- srem key member[member1] - - - - 从set集合中移除给定的元素,成功则返回1
- sinter / sunion / sdiff key1 key2 key3…… keyN - - - - 返回所有给定key的 交集 / 并集 / 差集
- smembers key - - - - 返回key对应set的所有元素,结果是无序的
- sismember key member - - - - 判断member 是否在key对应的set集合中
- scard key - - - - 返回key对应的set集合中元素个数
- smove p1 p2 member - - - - 从p1对应的set中移除member并添加到p2中
5、Sort SET 排序集合类型操作
和set一样,有所不同的是,每个元素都会关联一个“权”,通过权值可以有序的获取集合中的元素。适合场景,获取热门帖子信息。
- zadd Key score member - - - - 添加元素到集合中,元素在集合中存在,则更新对应的score。zadd hotmessage(键) 189(权值) 16(member)
- zrevrange Key start end - - - - 按照权值由高到低的顺序获取具体元素值得信息
- zremrangebyrank key min max - - - - 删除集合中排名在给定区间的元素(由小到大)
- zrank key member - - - - 返回指定元素在集合中的排名(下标),集合元素按score从小到大。 (zrevrank key member 是从大到小)
- zrange key start end - - - - 从集合中取指定区间的元素,返回的是有序结果
- zcard key - - - - 计算集合中元素个数
- zscore key element - - - - 返回给定元素对应的score
- zrem key member - - - - 删除指定元素,1表示成功
- zincrby key incr member - - - - 按照incr幅度增加对应member的score值,返回score值
6、HASH 数据类型操作
hash 哈希数据类型存储的数据与mysql数据库中存储的一条记录相似
hset key field value - - - - 设置hash field为指定值,如果key不存在,则先创建
hget key field - - - - 获取指定的hash field值
hmget key field1 field2…… fieldN - - - - 获取全部指定的hash field
hincrby key field integer - - - - 将指定的hash field加上指定的值
hexists key field - - - - 测试指定field是否存在
hdel key field - - - - 删除指定的hash field
hlen key - - - - 返回指定hash 的field的数量
hkeys key - - - - 返回hash的所有field
hvals key - - - - 返回hash 的所有value
hgetall key - - - - 返回hash的所有field和value
7、持久化功能
redis为了内部数据的安全考虑,会把本身的数据以文件形式保存到硬盘中一份,在服务器重启之后会自动把硬盘的数据恢复到内存里面,数据保存到硬盘的过程,就被称为“持久化”效果,持久化是默认开启的。(1)snap shotting快照持久化在本地硬盘保留的备份文件默认的文件名为dump.rdb。快照持久化和精细持久化可以尽最大程度保证数据安全。(2)append only file(AOF持久化),本质是把用户执行的每个“写”指令(添加、修改、删除)都备份到文件中,还原时候就是执行具体写指令。开始AOF持久化会清空redis内部数据。