redis使用与学习

首页 > 经验 > 作者:YD1662022-10-31 22:43:53

命令 hset key field value 设值:hset user:1 name monkey   //成功返回1,失败返回0 取值:hget user:1 name   //返回monkey 删值:hdel user:1 age   //返回删除的个数 计算个数:hset user:1 name monkey; hset user:1 age 18;   hlen user:1   //返回2,user:1有两个属性值 批量设值:hmset user:2 name monkey age 18sex boy   //返回OK 批量取值:hmget user:2 name age sex   //返回三行:monkey 18 boy 判断field是否存在:hexists user:2 name   //若存在返回1,不存在返回0 获取所有field: hkeys user:2   // 返回name age sex三个field 获取user:2所有value:hvals user:2   // 返回monkey18 boy 获取user:2所有field与value:hgetall user:2   //name age sex monkey18 18 boy值 增加1:hincrby user:2 age 1   //age 1 浮点增加:hincrbyfloat user:2 age 2   //浮点型加2  3、List集合

  用来存储多个有序的字符串,一个列表最多可存2的32次方减1个元素。

添加命令: rpush monkey c b a   //从右向左插入cba, 返回值3 lrange monkey 0 -1   //从左到右获取列表所有元素 返回 c b a lpush key c b a   //从左向右插入cba linsert monkey before b z  //在b之前插入z, after为之后,使 用lrange monkey 0 -1 查看:c z b a 查找命令: lrange key start end   //索引下标特点:从左到右为0到N-1 lindex monkey -1   //返回最右末尾a,-2返回b llen monkey   //返回当前列表长度 lpop monkey   //把最左边的第一个元素c删除 rpop monkey   //把最右边的元素a删除  4、Set集合

  常用于用户标签,社交,查询有共同兴趣爱好的人,智能推荐。保存多元素,与列表不一样的是不允许有重复元素,且集合是无序,一个集合最多可存2的32次方减1个元素,除了支持增删改查,还支持集合交集、并集、差集;

exists user   //检查user键值是否存在 sadd user a b c  //向user插入3个元素,返回3 sadd user a b   //若再加入相同的元素,则重复无效,返回0 smembers user   //获取user的所有元素,返回结果无序 srem user a   //返回1,删除a元素 scard user   //返回2,计算元素个数  5、有序集合ZSET

  常用于排行榜,如视频网站需要对用户上传视频做排行榜,或点赞数与集合有联系,不能有重复的成员

指令: zadd key score member [score member......] 例子: zadd user:zan 200 monkey   //monkey的点赞数1, 返回操作成功的条数1 zadd user:zan 200 monkey 120 fox 100 lion  // 返回3 zadd user:zan nx 100 monkey  //键test:1必须不存在,主用于添加 zadd user:zan xx incr 200 monkey  //键test:1必须存在,主用于修改,此时为300 zadd user:zan xx ch incr -299 monkey  //返回操作结果1,300-299=1 zrange user:zan 0 -1 withscores  //查看点赞(分数)与成员名 zcard user:zan   //计算成员个数, 返回1 排名场景: zadd user:3 200 monkey120 fox 100 lee  //先插入数据 zrange user:3 0 -1 withscores   //查看分数与成员 zrank user:3 monkey  //返回名次:第3名返回2,从0开始到2,共3名 zrevrank user:3 monkey  //返回0, 反排序,点赞数越高,排名越前  6、Redis全局命令

查看所有键: keys * 键总数 : dbsize   //2个键,如果存在大量键,线上禁止使用此指令 检查键是否存在: exists key   //存在返回1,不存在返回0 删除键: del key   //del key, 返回删除键个数,删除不存在键返回0 键过期: expire key seconds   //set name test expire name 10,表示10秒过期 ttl key   // 查看剩余的过期时间 键的数据结构类型: type key   //type hello //返回string,键不存在返回none  7、redis数据库管理

select 0   //数据库 16个数据库(0-15) 默认都是0库 flushdb   //清除当前数据库 flushall  //清楚所有数据库记录 dbsize  //命令用于返回当前数据库的 key 的数量六、Redis持久化

  持久化作用:redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化,持久化可以避免因进程退出而造成数据丢失。Redis持久化有两种方式:RDB快照和AOF方式。

  1、RDB

  RDB持久化把当前进程数据生成快照(.rdb)文件保存到硬盘的过程,有手动触发和自动触发手动触发有save和Bgsave两命令:

  1.1、Save命令

  由于 save 命令是同步命令,会占用Redis的主进程。若Redis数据非常多时,save命令执行速度会非常慢,阻塞所有客户端的请求。

  因此很少在生产环境直接使用SAVE 命令,可以使用BGSAVE 命令代替。如果在BGSAVE命令的保存数据的子进程发生错误的时,用 SAVE命令保存最新的数据是最后的手段。如图所示:

redis使用与学习,(9)

  1.2、Bgsave命令

  bgsave 命令执行一个异步操作,以RDB文件的方式保存所有数据的快照。如:

127.0.0.1:6379> bgsave Background saving started

  如图所示:

redis使用与学习,(10)

  1.3、save 与 bgsave 对比

redis使用与学习,(11)

  操作:

命令:config set dir /usr/local   //设置rdb文件保存路径 备份:bgsave   //将dump.rdb保存到usr/local下 恢复:将dump.rdb放到redis安装目录与redis.conf同级目录,重启redis即可  1.4、RDB优缺点

  RDB优点:

  RDB缺点:

  2、AOF

  快照功能(RDB)并不是非常耐久(durable): 如果 Redis 因为某些原因而造成故障停机, 那么服务器将丢失最近写入、且仍未保存到快照中的那些数据。 从 1.1 版本开始, Redis 增加了一种完全耐久的持久化方式: AOF 持久化。
  打开AOF后, 每当 Redis 执行一个改变数据集的命令时(比如 SET), 这个命令就会被追加到 AOF 文件的末尾。这样的话, 当 Redis 重新启时, 程序就可以通过重新执行 AOF 文件中的命令来达到重建数据集的目的。

redis使用与学习,(12)

上一页1234下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.