一:数据类型基本操作
1.0 key基本操作
- key * 返回所有key
- randomkey 返回随机key
- type key 返回key的存储的类型
- exists 判断某个可以是否存在
- del key 删除key
- rename key newkey 改名
- move key 1 将key移动到1数据库
- ttl key 查询key的生命周期(秒)
- expire key 正整数,设置key的生命周期以秒为单位
- pexpire key 正整数,设置key的生命周期以毫秒为单位
- pttl key 查询可以的生命周期(毫秒)
- perisist key 把指定key设置为永久有效
1.1String 类型
- Set key01 value:创建key
- get key01 获取key的值
- mset key01 value01 key02 value02 一次设置多个key和value
- mget key01 key02 获取多个key的值
- append key01 value 在key01的值后面增加value
- incr key01 自增,返回新值,需要int
- strlen key01 获取key的长度
- getrange key start stop 获取字符串从start 到stop范围内的值
1.2 List类型
- lpush key value 把值插入到链表的头部
- rpush key value 把值插入到链表的尾部
- lpop key 返回并删除链表头部元素
- rpop key 返回并删除链表尾部元素
- lrange key start stop 返回[start stop] 范围内的元素
- lrem key count value 从链表中删除value值,删除cout的绝对值个value
count>0表示从头删除,<0表示从尾部开始删除,count =0表示删除完
eg: lrem list_key 1 value1 - ltrim key start stop :剪切key对应的连接,切[start stop]一段,重新赋予key
- lindex key index 返回index索引上的值
- llen key 计算list的元素的个数
- linsert key after|before search value :在key链表中寻找值为search的,并在其前|后添加value
- rpoplpush source dest :把source的末尾拿出,放在dest头部,并返回单元值
执行后的结果
source中尾部移除,dest中头部多了一个值。
1.3 Hash类型
hash是一个String类型的field和value的映射表,它的添加、删除操作都是O(1),hash特别适合用于存储对象
- hset myhash field value :设置myhash 的filed为value
eg:hset myhash name wps
hset myhash id 111
hset myhash address 新华社- hmset myhash name wps id 111 address xxx同时设置多个filed
- hget myhash filed 获得filed的值
- hmget myhash filed1 filed2 获取多个filed的值
- hincrby myhash filed 1 在指定的field下加上给定的值,需要时int
- hexists myhash filed 测试指定的filed是否存在
- hlen myhash 返回hash的filed的数量
- hdel myhash field 删除hash的filed
- hkeys myhash 返回hash的所有的field
- hvals myhash 返回hash的所有的value
- hgetall myhash 获取某个hash中全部的field和valuse
1.4 Set集合类型
特点:无序性。确定性。唯一性
- sadd key value1 value2 往集合里面添加元素
- smembers key 获取集合所有的元素
- srem key value 删除集合某个元素
- spop key 返回并删除集合中1个随机元素(可以做抽奖,不会重复抽到某人)
- srandmember key 随机取一个元素
- sismember key value 判断集合是否有某个值
- scard key 返回集合元素的个数
- smove source dest value 把source的value的值一道dest集合中
- sinter key1 key2 key3 求key1 和key2 key 3的交集
- sunion key1 key2 求key1和key2 的交集
- sdiff key1 key2 求key1 和key2 的差集
- sinterstore res key1 key2 求key1 和key2 的交集并存在res中
1.5 Sorted Set 有序集合
概念:它在set的基础上增加了一个顺序属性,这一属性在添加元素的时候可以指定,每次指定后,zset会自动按新的值调整顺序
可以理解为两列mysql表,一列存储value 一列存储顺序,操作中key理解为zset的名字
- zadd key score1 value1 添加元素
- zrange key start stop [withscore] 把集合排序后,返回名次【start stop】的元素,默认是升序排列, withscres是吧score也打印出来
2 持久化方式,以及数据备份和恢复
Redis的所有数据都保存在内存中,然后不定期的通过异步方式保存到磁盘中(半持久化模式);也可以把每一次数据变化都写入到append only file (aof)里面(全持久化模式)
由于Redis的数据存储在内存中,如果没有配置持久化,redis重启后,数据就会丢失。如果开启了持久化,重启后数据会依然存在,Redis支持两种持久化方式
2.1 RDB 持久化
将Redis内存中的数据在指定的时间间隔内将数据集快照写入磁盘,默认的持久化方式,
触发方式分为手动触发和自动触发
- 手动触发
save - 自动触发
在配置文件中添加