1.redis: 基于内存的键值对结构数据库
特点:
1.基于内存存储
2.适合存储热点数据(高访问量, 需要快速处理和应答的数据)
redis安装:
redis属于绿色软件, 解压即可使用
配置文件:
redis-server -启动服务器端,
启动时, 需要配置参数: redis.windows.conf(windows版的redis的配置文件)
可以在redis.windows.conf文件里设置登录密码:
ctrl+f, 搜索requirepass, 取消注释, 在requirepass后设置密码
redis-cli -启动客户端
redis数据类型:
key-value
key --字符串类型
value
string -字符串
hash -哈希, 也叫散列, 类似于java中的HashMap
list -列表, 按照插入顺序排序, 可以有重复元素, 类似于java中的LinkedList
set -集合, 无序集合, 类似于java中的HashSet
sorted set / zset -有序集合, 集合中每个元素关联一个分数,
根据分数升序排序, 无重复元素
redis与mysql等关系型数据库的区别:
1.存储位置
redis在内存中存储, 因为内存造价昂贵, 所以终端中的内存一般最多16G或32G,
适合一些少量高访问量数据
mysql在磁盘中存储, 因为磁盘造价较低, 存储空间大, 一般可达512G或1024G,
适合存放大量数据, 对访问的应答和处理速度较慢
2.数据存储方式不同:
redis属于NoSQL数据库, 也就是非关系型数据库, 采用
key-value(键值对)形式存储数据
mysql属于SQL数据库, 类似关系型数据库还包括sqlserver等,
这类数据库采用二维表的形式存储数据
3.两者关系
mysql适合存放大量数据, 但是因为mysql将数据存储到磁盘上, 读取速度相对较慢,
不能应对一些高访问量, 高并发的场景,
而redis因为将数据存储在内存中, 数据响应数据快, 可以有效解决这类问题
所以, 两者是相互补充的关系
2.redis的操作命令:
字符串命令:
1.set key value -设置值
2.get key -获取值
3.setex key second vlaue -设置值并指定key过期时间
4.setnx key vlaue -只有在key不存在时设置key值, key存在时, 设置无效
哈希表-散列表-键值对表
1.hset key filed value --设置指定key里面的键值对, 一次只能设置一个
2.hdel key field --删除指定key的指定键值对
3.hget key field --获取指定key的field对应的value(根据键查找单个值)
4.hgetall key --获取指定key的所有field+value(查看所有键值对)
5.hkeys key --获取指定key的所有field(查看指定key里面的所有键)
6.hvals key --获取指定key的所有value(查看指定key里面的所有值)
列表命令:
lpush key value1 [value2][...] 将数值插入列表头
rpop key 删除列表最后一个元素并回显
lrange key start stop 截取列表中元素从start到stop
llen 获取列表长度
3.区分mysql与redis命令:
1.大部分数据库命令都不区分大小写,也就是对大小写不敏感,
包括属于关系型的mysql,属于非关系型的redis
2.mysql命令与redis命令差别不大, 基本操作--增删改查,
只不过, 在redis中, 增+改==set, 删==del ,查==get
4.作者的废话, 别看了
温馨提示: 在IT行业, 对于新手,
不建议新手上来就看书, 相比于书籍, 视频更适合入门
有时候书里面的东西确实很全, 也很规范, 但
这与你能不能快速入门, 并掌握相关技能, 没有半毛钱关系, 没卵用,
就像是, 你要学英语, 所以起手开始背牛津词典, 谁也不能否认,
如果你掌握了牛津词典, 哪怕只有一小部分, 足以称霸校园, 但是, 兄弟, 学习不是这么学的,
这叫啥, 没苦硬吃啊, 你想一想, 如果抱着书籍学作用很大, 为什么还要老师教的?
干脆, 人手一本字典, 去背得了!
视频相对于书籍,
1.交互性更强, 老师可以讲经验与心得潜移默化给你
2.对新手友好, 书籍虽然规范, 但是规范必然带来冗余, 带来形式化, 虽然全面,
但并不能让你领会核心思想, 任何事物都有一个核心, 我们学习就是为了把握核心,
但是规范的书籍, 过于精细, 反而不利于我们在整体上领会事情的核心, 反而是阻碍
在领会了核心思想的情况下, 书籍会变成我们过关斩将的利器