什么是Redis?

  1. * Redis是一种高级key-value数据库。
  2. * Redis:REmote DIctionary Server(远程字典服务器)
  3. * Redis 是完全开源免费的,用C语言编写的,遵守BSD协议
  4. * 是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库
  5. * 是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器

Redis 与其他 key - value 数据库的对比

  1. * **Redis支持数据的持久化**,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
  2. * **Redis数据结构类型丰富**:不仅仅支持简单的key-value类型的数据,同时还提供listsetzsethash等数据结构的存储
  3. * **Redis支持数据的备份**,即master-slave模式的数据备份
  4. * 下图展示了一些数据库和缓存服务器的特性与功能
  5. ![](https://img2020.cnblogs.com/blog/1756476/202004/1756476-20200414175716515-1116925459.png)

Redis 能干什么

  1. * 根据Redis的特性,简单列举几个应用场景:
  2. + 内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务Redis可以用作主数据库 (primary database) 或者其他存储系统的辅助数据库 (auxiliary database)
  3. + 取最新N个数据的操作,如:可以将最新的10条评论的ID放在RedisList集合里面
  4. + 模拟类似于HttpSession这种需要设定过期时间的功能
  5. + 发布、订阅消息系统
  6. + 定时器、计数器

Redis的安装配置

  1. * Linux虚拟机安装
  2. + 本教程使用的是 VMWare虚拟机,Linux系统使用的RedHat系列的 CentOS6.5 版本。
  3. * Linux 版安装
  4. + 下载地址 https://redis.io/download 下载最新版本的Redis。
  5. * Redis安装
  6. + 下载获得 redis-5.0.4.tar.gz 后,拷贝到我们的/usr/soft目录
  7. + 使用 tar 命令解压文件
  8. - > tar -zxvf redis-5.0.4.tar.gz
  9. + 进入 redis-5.0.4 目录,执行 make ,编译源代码
  10. - 如果采用linux最小安装,make命令会出现 command not found 错误,解决方式
  11. - > 先执行: yum -y install gcc automake autoconf libtool make
  12. - > 安装g++: yum install gcc gcc-c++
  13. - 如果出现: error: jemalloc/jemalloc.h: No such file or directory
  14. - > 原因是jemalloc重载了Linux下的ANSI Cmallocfree函数。解决办法:make时添加参数。make MALLOC=libc
  15. + 编译后继续执行 make install , 进行安装,默认安装到了 /usr/local/bin 目录下
  16. - > make install PREFIX=/usr/local/redis
  17. + 安装成功
  18. - > 总用量 12948
  19. - > -rw-r--r--. 1 root root 92 4 18 19:40 dump.rdb(配置文件)
  20. - > -rwxr-xr-x. 1 root root 353808 4 18 19:30 redis-benchmark(性能测试工具,可以在自己本子运行,看性能)
  21. - > -rwxr-xr-x. 1 root root 4030624 4 18 19:30 redis-check-aof(修复有问题的AOF文件)
  22. - > -rwxr-xr-x. 1 root root 4030624 4 18 19:30 redis-check-rdb(同上)
  23. - > -rwxr-xr-x. 1 root root 794352 4 18 19:30 redis-cli(客户端,操作入口)
  24. - > lrwxrwxrwx. 1 root root 12 4 18 19:30 redis-sentinel -> redis-server(redis集群使用)
  25. - > -rwxr-xr-x. 1 root root 4030624 4 18 19:30 redis-server(Redis服务器启动命令)

Redis启动和连接

  1. * 使用 redis-server 命令可以启动Redis服务器。
  2. * Redis默认的端口号是6379,下图展示的是在非守护线程下启动,并且使用的是redis默认的配置文件 /usr/soft/redis-5.0.4/redis.conf
  3. + 注意在当前目录不能启动
  4. - > cd /usr/local/redis
  5. - > ./bin/redis-server
  6. ![](https://img2020.cnblogs.com/blog/1756476/202004/1756476-20200414175750751-1818460156.png)

上面开启的是非守护线程下启动(独占模式),下面我们来做成后台运行模式

  1. * 如果需要修改 redis 的默认配置,建议将配置文件复制一份
  2. + > cp /usr/soft/redis-5.0.4/redis.conf /usr/local/redis/
  3. * 配置说明
  4. + 编辑刚复制过来的配置文件
  5. - > vim redis.conf
  6. - > 如果没有vim,可以执行yml install vim下载
  7. - > 由于配置文件中配置众多,我们可以采用:/port 这样搜索
  8. + Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
  9. - > daemonize yes
  10. + 指定Redis监听端口,默认端口为6379.
  11. - > port 6479
  12. + 绑定的主机地址
  13. - > bind 127.0.0.1
  14. * 然后使用启动Redis并且使用自己刚复制过来的配置文件
  15. + > bin/redis-server /usr/local/redis/redis.conf
  16. * 查看Redis是否启动
  17. + > ps -ef | grep redis

连接Redis服务器:永远的Helloworld

  1. * 连接(如果配置文件修改了端口,后面加上 -p)
  2. + > bin/redis-cli -p 6479
  3. * 进入Redis指定密码
  4. + > auth 123456
  5. * 关闭Redis服务
  6. + > bin/redis-cli -a 123456 shutdown

Redis启动后的基础知识讲解

  1. * 默认16个数据库,可以通过 select 命令切换数据库
  2. * Dbsize查看当前数据库的key的数量
  3. * keys * 列出所有的键值
  4. * Flushdb:清空当前库
  5. * Flushall;通杀全部库(慎用)
  6. * 统一密码管理,16个库都是同样密码,要么都OK要么一个也连接不上
  7. * Redis索引都是从零开始
  8. * 为什么默认端口是6379 :因为6379在手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字

Redis的五大数据类型

  1. * Redis 可以存储键与5种不同的数据结构类型之间的映射
  2. * 最简单的 String
  3. * 存储多个 List
  4. * 唯一的无序 Set
  5. * 有序 Zset
  6. * 保持键值对 Hash
  7. ![](https://img2020.cnblogs.com/blog/1756476/202004/1756476-20200414175806760-1353799787.png)

Redis 键 key

  1. * Redis 的键命令用于管理 redis 的键,该命令是通用的 key 命令,适用于所有的数据类型。
  2. * 常用案例:
  3. + keys * : 列出当前数据库中所有的键
  4. + exists key : 判断某个key是否存在
  5. + move key db : 移动key到另外一个库,当前库就没有了
  6. + expire key time(秒数): 设置键的过期时间
  7. + ttl key: 查看key的过期时间: -1: 永不过期, -2: 已经过期
  8. + type key: 查看 key 的类型
  9. * Redis字符串(string)
  10. + Redis 字符串类型是使用 Rediskey时最简单的一种类型
  11. + 这也是 memcached 中唯一支持的数据类型
  12. + 当我们使用 string 数据类型时,值也是 string 类型的
  13. + 下面我们来看下string 类型的用法
  14. - set/get: 设置和设置给定的key的值
  15. - append: 为指定的key 追加值。如果key 已经存在,将值追加到末尾,如果不存在,则执行 set
  16. - strlen: 获取指定 key 所储存的字符串值的长度。当 key 储存的不是字符串值时,返回一个错误。
  17. - Incr(+1)/decr(-1)/incrby(指定长几 incrby 2)/decrby(指定降几): 一定要是数字才能进行加减
  18. - getrange/setrange: 获取或者设置指定区间范围的值
  19. - (从0开始)
  20. - mget/mset: 同时获取后者设置多个 key-value
  21. - > mset IOS Apple price 9999 color Silver
  22. - getset: getset,返回原先的value
  23. - > mget IOS Apple
  24. * Redis 列表(list)
  25. + 类似于Java中的数组
  26. + Redis 对链表(linked-list) 的支持使得它在键值存储的世界中独树一帜。
  27. + Redis列表是简单的字符串列表,按照插入顺序排序。
  28. + 下面列举一些常用的list命令:
  29. - rpush: 将一个或多个值插入到列表的尾部(最右边)
  30. - lpush: 命令将一个或多个值插入到列表头部。
  31. - lrange: 返回列表中指定区间内的元素,区间以偏移量 START  END 指定。 其中 0 表示列表的第一个元素,1 表示列表的第二个元素,以此类推.你也可以使用负数下标,以 ­1 表示列表的最后一个元素,2 表示列表的倒数第二个元素,以此类推。
  32. - lpop / rpop: 移除并返回列表的第一个/最后一个元素
  33. - lindex: 通过索引获取列表中的元素.你也可以使用负数下标,以 ­1 表示列表的最后一个元素,以此类推
  34. - ltrim: 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在区域内将会被删除
  35. - lset: 通过索引来设置元素的值。 当索引参数超出范围,或对一个空列表进行 LSET 时,返回一个错误。
  36. - > lset fruits 0 juzi 把第一个改成juzi,重新赋值
  37. linsert: 用于在列表的元素前或者后插入元素
  38. * Redis 集合(set,不能重复)
  39. + Redis的集合和列表都可以存储多个字符串
  40. + 下面猎取一些常用的 Set 命令:
  41. - sadd: 把爱好放入到Set集合中
  42. - > sadd hobbies eat eat sleep
  43. - smembers: 查看集合中的值
  44. - > SMEMBERS hobbies
  45. - sismember: 查看爱好集合中是否存在某个爱好
  46. - scard : 命令返回集合中元素的数量
  47. - srem : 用于移除集合中的一个或多个成员元素,不存在的成员元素会被忽略。
  48. - srandmember : 用于返回集合中的一个或者多个随机元素
  49. - spop : 用于移除并返回集合中的一个随机元素
  50. - sdiff / sinter / sunion :  返回集合的差集 、交集、并集
  51. * Redis 有序集合 Zset (sorted set)
  52. + 有序集合和散列一样,都用于存储键值对:有序集合的键被称为成员(member)
  53. + Zset中常用的命令
  54. - zadd :用于将一个或多个成员元素及其分数值加入到有序集当中.
  55. - zrange 返回有序集中,指定区间内的成员。其中成员的位置按分数值递增(从小到大)来排序
  56. - Zrangebyscore :返回有序集合中指定分数区间的成员列表
  57. - zrem : 用于移除有序集中的一个或多个成员,不存在的成员将被忽略。
  58. - zcard : 用于计算集合中元素的数量
  59. - zcount : 用于计算有序集合中指定分数区间的成员数量
  60. - zrevrank : 返回有序集中成员的排名
  61. * Redis 哈希(hash)
  62. + Redis Hashes 可以存储多个键值对之间的映射,是字符串字段和字符串值之间的映射
  63. + 所以它们是完美的表示对象(eg:一个有名,姓,年龄等属性的用户)的数据类型
  64. - hmset computer brand Lenovo price 5699 color black 储存
  65. - hgetall computer 输出
  66. + Redis hash 常用的命令有
  67. - hset / hget :用于为哈希表中的字段赋值 。如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。如果字段已经存在于哈希表中,旧值将被覆盖
  68. - hmset / hmget / hgetall :  用于同时将多个 field­value (字段­值)对设置到哈希表中。或者同时获取多个 field­value值。
  69. - hdel : 用于删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略
  70. - hlen : 用于获取哈希表中字段的数量.
  71. - hexists : 用于查看哈希表的指定字段是否存在。
  72. - hkeys / hvals : 获取所有的字段  字段值
  73. - hincrby / Hincrbyfloat:为哈希表 key 中的指定字段的整数值(浮点数值)加上增量 increment

Redis入门使用 -- 个人总结的更多相关文章

  1. 安装redis入门

    redis官网:redis.io redis版本用的是redis-3.2.2 $ wget http://download.redis.io/releases/redis-3.2.2.tar.gz $ ...

  2. redis入门笔记(2)

    redis入门笔记(2) 上篇文章介绍了redis的基本情况和支持的数据类型,本篇文章将介绍redis持久化.主从复制.简单的事务支持及发布订阅功能. 持久化 •redis是一个支持持久化的内存数据库 ...

  3. redis入门笔记(1)

    redis入门笔记(1) 1. Redis 简介 •Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure serv ...

  4. Redis入门指南

    随着互联网业务对性能需求日益强烈,作为Key/Value存储的Redis具有数据类型丰富和性能表现优异的特点.如果能够熟练地驾驭它,不管是把它用做缓存还是存储,对很多大型应用都很多帮助.新浪作为世界上 ...

  5. Redis入门教程:特性及数据类型的操作

    虽然Redis已经很火了,相信还是有很多同学对Redis只是有所听闻或者了解并不全面,下面是一个比较系统的Redis介绍,对Redis的特性及各种数据类型及操作进行了介绍.是一个很不错的Redis入门 ...

  6. 【原】Redis入门教程

    最近在学习Redis,写几篇文章记录一下学习过程:Redis入门教程. 1.Redis基本概念 Redis Redis Keys Redis 基本数据类型 Redis基本操作 遍历操作 Pub-Sub ...

  7. windows下使用redis,Redis入门使用,Redis基础命令

    windows下使用redis,Redis入门使用,Redis基础命令 >>>>>>>>>>>>>>>> ...

  8. Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式)

    Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式) 原文地址:http://alanland.iteye.com/admin/blogs/1600685(欢迎转载 ...

  9. redis入门(15)redis的数据备份和恢复

    redis入门(15)redis的数据备份和恢复

  10. redis入门(14)redis集群下的数据分区存储

    redis入门(10)redis集群下的数据分区存储

随机推荐

  1. 手把手教你学Git

    Git 使用手册独家实战 0.查看本机公钥 步骤: 1.进入.ssh目录 cd ~/.ssh 2.找到id_rsa.pub文件 ls / ll 3.查看文件 cat id_rsa.pub JackFe ...

  2. SQL server 2012安装教程

    转自:https://blog.csdn.net/u013162035/article/details/78567389 注]博主使用的是SQL Server2012 其他版本的安装类似.[第一步]下 ...

  3. css 重排与重绘

    css 重绘与重排 我们要知道当浏览器下载完页面的所有资源后,就会开始解析源代码. HTML 会被解析成 DOM Tree,Css 则会被渲染成 CSSOM Tree,最后它们会附加到一起,形成渲染树 ...

  4. 4D

    GIS行业通常将GIS常用的数据产品概括为“4D”,即:DOM(数字正射影像图).DEM(数字高程模型).DLG(数字线划地图).DRG(数字栅格地图).以及复合模式派生数据组成. DOM:数字正射影 ...

  5. XCode8 安装模拟器

    1.下载模拟器 参考:http://blog.csdn.net/piratest/article/details/52538978 参考:http://blog.csdn.net/zhangao008 ...

  6. mongodb服务器启动

    以配置文件启动服务器: mongod --config /usr/local/mongodata/config/mongodb.conf(配置文件路径) 客户端启动: mango 关闭mongodb的 ...

  7. Dome 多人人脸识别 face_recognition

    Dome 多人人脸识别 face_recognition 注意 face_recognition 依赖 face_recognition_models 中文字体文件需要自己下载 1.多人人脸识别 # ...

  8. 《java编程思想》对象导论

    1.抽象过程 所有编程语言都提供抽象机制.可以认为,人们所能够解决的问题的复杂性直接取决于抽象的类型和质量,所谓的'类型'是指“所抽象的是什么?”汇编语言是对底层机器的轻微抽象. java的基本 特性 ...

  9. 实验十一 MySQLl备份与恢复2

    实验十一 MySQL备份与恢复 一.  实验内容: 1. 使用SQL语句导入和导出表数据 2. 使用客户端工具备份还原数据库 3. 使用日志文件恢复数据库 二.  实验项目:学生成绩数据库 创建用于学 ...

  10. 基于华为云IoT Studio自助生成10万行代码的奥秘

    华为IoT小助手们搬好板凳.备好笔记本.听了HDC.Cloud的几场华为云技术架构师的直播讲课,感觉获益匪浅却又似懂非懂,直后悔自己没有好好打下基础.为了避免再次出现这样的情况,小助手偷偷跑去找了华为 ...