1.keys键操作
- exists key 测试指定key是否存在
- del key1 key2….keyN 删除指定key
- type key 返回指定key的value类型
- keys pattern 返回指定模式的所有key
- rename oldkey newkey 改名字
- dbsize 返回当前数据路的key数量
- expire key seconds 为key指定过期时间
- ttl key 返回key的过期剩余秒数
- select db-index 选择数据库
- move key db-index 把key从当前数据库移动到指定数据库
- flushdb 删除当前数据库所有key
- flushall 删除所有数据库中的所有key
2.String类型操作
- set key value 设置key对应值为string类型的value
- setex key seconds value 设置key对应值为string类型的value,增加到期时间
- mset key1 value1…keyN valueN 一次设置多个key的值
- mget key1 …keyN 一次获取多个key的值
- incr key 对key的值++操作,并返回新值
- decr key 同上,但是做的是–操作
- incrby key integer 同incr,加指定值
- decrby key integer 同desr,减指定值
- incrbyfloat key increment 对key的值增加一个浮点数
- append key value 给指定key的字符串追加value
- substr key start end 返回截取过的key的字符串值
- getrange key start end 获取存储在key上的值的一个子字符串
- setrange key offset value 将从start偏移量开始的子串设置指定的值
3.list链表操作(有序,可重复)
- lpush key string 在key对应list的头部添加字符串元素
- rpop key 在list的尾部删除元素,并返回删除元素
- rpush key string
- lpop key
- lpush key string
- llen key 返回对应list的长度
- lrange key start end 返回指定区间内的元素,从下表0开始
- ltrim key start end 截取list, 保留指定区间内元素
- lindex key 下标 获取列表下标对应的指定元素
- blpop key[key…] time out 删除,并获得该列的第一元素, 或阻塞,直到有一个可用
- brpop key[key…] time out 删除, 并获得该列的最后一个元素, 或阻塞,直到有一个可用
- rpoplpush source destination 删除列表中的最后一个元素,将其追加到另一个列表
- brpoplpush source destination timeout 弹出一个列表的值,将他推到另一个列表,并返回他,直到有一个可用
可以模拟 队列(先进后出) 和 栈(先进先出)4.hash散列操作
- hdel key field[field…] 删除一个或多个hash的field
- hexists key field 判断field是否存在hash中
- hget key field 获取hash中field的值
- hgetall key 从hash中读取全部的域和值
- hincrby key field increment 将hash中指定域的值增加给定的值
- hincrbyfloat key field increment 将hash中指定域的值增加给定的浮点数
- hkeys key 获取hash 中所有field
- hlen key 获取hash中所有字段的数量
- hmget key field[field…] 获取hash里面指定字段的值
- hmset key field[field…] 设置hash字段值
- hset key field value 设置hash里面一个字段的值
- hsetnx key field value 设置hash的一个字段,只有这个字段不存在是有效
- hstrlen key field 获取hash里面指定field的长度
- hvals key 获取hash的所有值
- hscan key cursor 迭代hash里面的元素
5.set集合操作(无序,唯一)
- sadd key member 添加一个string元素到key对应的set集合中
- srem key member 从key对应set中移除给定元素
- smove p1 p2 member 从p1对应set中移除给定元素并添加到p2对应set中
- scard key 返回set的元素个数
- sismember key member 判断member是否在set中
- sinter key p1 p2…pN 返回所有给定key的交集
- sunion key p1 p2…pN 返回所有给定key的并集
- sdiff key p1 p2…pN 返回所有给定key 的差集
- smembers key 返回key对应set的所有元素,结果是无序的
- sinterstore destination key [key….] 获取两个集合的交集,并存储在一个关键的结果集
- sunionstore destination key [key…] 合并set集合,并将结果存入新的set里面
- sdifferstore destination key[key…] 获取队列的差集,并存储在一个新的结果集
- srandmember key [count] 从集合中随机获取一个key
- spop key[count] 删除并取得一个集合里面的元素
- smove source destination member 移动集合里的一个key到另一个集合
6.sorted set有序集合操作(有序, 唯一)
- zadd key score member 添加元素到集合,元素在集集合中存在则更新应对的score
- zrem key member 删除指定元素
- zcount key min max 返回分数范围内的成员变量
- zincrby key incr member 按照incr幅度增加对应member的score值,返回score值
- zrank key member 返回指定元素在集合中的排名(下标),集合中元素是按score从小到大排序的
- zrevrank key member 集合中元素是按score从大到小排序的
- zrange key start end 从集合中选择指定区间的元素,返回的是有序集合
- zrevrange key start end 同上,返回结果是按score逆序的
- zcard key 返回集合中元素的个数
- zscore key member 返回给定元素对应的score
- zremrangebyrank key min max 删除集合中排名在给定区间的元素
- zinterstore distination numkeys 相交多个结果集,导致排序的设置存储在一个新的结果集
- zunionstore destination numberkeys 添加多个排序集合导致排序的设置存储在一个新的结果集,可以实现取得最大值(max),取得最小值(min)
7.redis的基本事务(流水线)
- discard 丢弃所有multi之后发的命令
- exec 执行所有multi之后发放人命令
- multi 标记一个事务块开始
- unwatch 取消事务命令
- watch key[key…] 锁定key,直到执行了multi/exec命令
8.redis持久化的两种方式
8.1 快照持久化
- ./redis-cli bgsave 异步快照持久化命令 save操作是在主线程中保存快照的(不推荐)
- 当执行shutdown命令后,会执行一个save命令,执行完毕之后关闭服务器
- 当从服务器向主服务器发送一个sync命令来执行一次复制操作,那么主服务器会执行bgsave命令
- 配置文件快照配置信息
save 900 1 (900秒内有1次修改备份) save 300 10 (900秒内有10次修改备份) save 60 10000 (60 秒内有10000 次修改备份)
- 1
- 2
- 3
8.2 AOF持久化
- 开启AOF持久化(设置之前所有数据被清空)
- 开启AOF持久化—>修改配置文件 appendonly yes
AOF备份存储文件—> appendfilename appendonly.aof
appendfsync always 每次收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用,还有可能影响固态硬盘的寿命 appendfsync everysec 每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐 appendfsync no 看心情
- 1
- 2
- 3
- 4
- 5
- 6
AOF备份文件优化处理 ./redis-cli bgrewriteaof
9. redis主从复制
- 从服务器(可读)配置文件修改:slaveof (主服务器ip地址和端口号)ip port
- 从服务器默认禁止写入操作:slave-read-only yes
- 当3个或3个以上的从数据库连接到主数据库时,主数据库才可以写入:min-slaves-to-write 3
- 允许从数据库失去连接的最长时间:min-slave2-max-lag 10
- slaveof on one 服务器终止复制操作
- slaveof host port 服务器开始复制一个新的主服务器
- 从服务器在进行同步时,会清空自己的所有数据
- redis不支持主主复制
- 主从链:随着读请求操作的重要性明显高于写请求的操作性,增加从服务器,减轻主服务器的负担,从服务器可以有自己的从服务器*
10.处理系统故障
- 遇到系统故障时,redis提供了数据恢复工具:redis-check-aof 和 redis-check-dump
1.keys键操作
- exists key 测试指定key是否存在
- del key1 key2….keyN 删除指定key
- type key 返回指定key的value类型
- keys pattern 返回指定模式的所有key
- rename oldkey newkey 改名字
- dbsize 返回当前数据路的key数量
- expire key seconds 为key指定过期时间
- ttl key 返回key的过期剩余秒数
- select db-index 选择数据库
- move key db-index 把key从当前数据库移动到指定数据库
- flushdb 删除当前数据库所有key
- flushall 删除所有数据库中的所有key
2.String类型操作
- set key value 设置key对应值为string类型的value
- setex key seconds value 设置key对应值为string类型的value,增加到期时间
- mset key1 value1…keyN valueN 一次设置多个key的值
- mget key1 …keyN 一次获取多个key的值
- incr key 对key的值++操作,并返回新值
- decr key 同上,但是做的是–操作
- incrby key integer 同incr,加指定值
- decrby key integer 同desr,减指定值
- incrbyfloat key increment 对key的值增加一个浮点数
- append key value 给指定key的字符串追加value
- substr key start end 返回截取过的key的字符串值
- getrange key start end 获取存储在key上的值的一个子字符串
- setrange key offset value 将从start偏移量开始的子串设置指定的值
3.list链表操作(有序,可重复)
- lpush key string 在key对应list的头部添加字符串元素
- rpop key 在list的尾部删除元素,并返回删除元素
- rpush key string
- lpop key
- lpush key string
- llen key 返回对应list的长度
- lrange key start end 返回指定区间内的元素,从下表0开始
- ltrim key start end 截取list, 保留指定区间内元素
- lindex key 下标 获取列表下标对应的指定元素
- blpop key[key…] time out 删除,并获得该列的第一元素, 或阻塞,直到有一个可用
- brpop key[key…] time out 删除, 并获得该列的最后一个元素, 或阻塞,直到有一个可用
- rpoplpush source destination 删除列表中的最后一个元素,将其追加到另一个列表
- brpoplpush source destination timeout 弹出一个列表的值,将他推到另一个列表,并返回他,直到有一个可用
可以模拟 队列(先进后出) 和 栈(先进先出)4.hash散列操作
- hdel key field[field…] 删除一个或多个hash的field
- hexists key field 判断field是否存在hash中
- hget key field 获取hash中field的值
- hgetall key 从hash中读取全部的域和值
- hincrby key field increment 将hash中指定域的值增加给定的值
- hincrbyfloat key field increment 将hash中指定域的值增加给定的浮点数
- hkeys key 获取hash 中所有field
- hlen key 获取hash中所有字段的数量
- hmget key field[field…] 获取hash里面指定字段的值
- hmset key field[field…] 设置hash字段值
- hset key field value 设置hash里面一个字段的值
- hsetnx key field value 设置hash的一个字段,只有这个字段不存在是有效
- hstrlen key field 获取hash里面指定field的长度
- hvals key 获取hash的所有值
- hscan key cursor 迭代hash里面的元素
5.set集合操作(无序,唯一)
- sadd key member 添加一个string元素到key对应的set集合中
- srem key member 从key对应set中移除给定元素
- smove p1 p2 member 从p1对应set中移除给定元素并添加到p2对应set中
- scard key 返回set的元素个数
- sismember key member 判断member是否在set中
- sinter key p1 p2…pN 返回所有给定key的交集
- sunion key p1 p2…pN 返回所有给定key的并集
- sdiff key p1 p2…pN 返回所有给定key 的差集
- smembers key 返回key对应set的所有元素,结果是无序的
- sinterstore destination key [key….] 获取两个集合的交集,并存储在一个关键的结果集
- sunionstore destination key [key…] 合并set集合,并将结果存入新的set里面
- sdifferstore destination key[key…] 获取队列的差集,并存储在一个新的结果集
- srandmember key [count] 从集合中随机获取一个key
- spop key[count] 删除并取得一个集合里面的元素
- smove source destination member 移动集合里的一个key到另一个集合
6.sorted set有序集合操作(有序, 唯一)
- zadd key score member 添加元素到集合,元素在集集合中存在则更新应对的score
- zrem key member 删除指定元素
- zcount key min max 返回分数范围内的成员变量
- zincrby key incr member 按照incr幅度增加对应member的score值,返回score值
- zrank key member 返回指定元素在集合中的排名(下标),集合中元素是按score从小到大排序的
- zrevrank key member 集合中元素是按score从大到小排序的
- zrange key start end 从集合中选择指定区间的元素,返回的是有序集合
- zrevrange key start end 同上,返回结果是按score逆序的
- zcard key 返回集合中元素的个数
- zscore key member 返回给定元素对应的score
- zremrangebyrank key min max 删除集合中排名在给定区间的元素
- zinterstore distination numkeys 相交多个结果集,导致排序的设置存储在一个新的结果集
- zunionstore destination numberkeys 添加多个排序集合导致排序的设置存储在一个新的结果集,可以实现取得最大值(max),取得最小值(min)
7.redis的基本事务(流水线)
- discard 丢弃所有multi之后发的命令
- exec 执行所有multi之后发放人命令
- multi 标记一个事务块开始
- unwatch 取消事务命令
- watch key[key…] 锁定key,直到执行了multi/exec命令
8.redis持久化的两种方式
8.1 快照持久化
- ./redis-cli bgsave 异步快照持久化命令 save操作是在主线程中保存快照的(不推荐)
- 当执行shutdown命令后,会执行一个save命令,执行完毕之后关闭服务器
- 当从服务器向主服务器发送一个sync命令来执行一次复制操作,那么主服务器会执行bgsave命令
- 配置文件快照配置信息
save 900 1 (900秒内有1次修改备份) save 300 10 (900秒内有10次修改备份) save 60 10000 (60 秒内有10000 次修改备份)
- 1
- 2
- 3
8.2 AOF持久化
- 开启AOF持久化(设置之前所有数据被清空)
- 开启AOF持久化—>修改配置文件 appendonly yes
AOF备份存储文件—> appendfilename appendonly.aof
appendfsync always 每次收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用,还有可能影响固态硬盘的寿命 appendfsync everysec 每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐 appendfsync no 看心情
- 1
- 2
- 3
- 4
- 5
- 6
AOF备份文件优化处理 ./redis-cli bgrewriteaof
9. redis主从复制
- 从服务器(可读)配置文件修改:slaveof (主服务器ip地址和端口号)ip port
- 从服务器默认禁止写入操作:slave-read-only yes
- 当3个或3个以上的从数据库连接到主数据库时,主数据库才可以写入:min-slaves-to-write 3
- 允许从数据库失去连接的最长时间:min-slave2-max-lag 10
- slaveof on one 服务器终止复制操作
- slaveof host port 服务器开始复制一个新的主服务器
- 从服务器在进行同步时,会清空自己的所有数据
- redis不支持主主复制
- 主从链:随着读请求操作的重要性明显高于写请求的操作性,增加从服务器,减轻主服务器的负担,从服务器可以有自己的从服务器*
10.处理系统故障
- 遇到系统故障时,redis提供了数据恢复工具:redis-check-aof 和 redis-check-dump