NoSQL之Redis配置

一、存储数据类型分类

  • 结构化数据:可以通过二维表格形式表述这个数据。
  • 非结构化数据:不方便以二维表格的形式表述的这种类型的数据
  • 根据不同种存储数据类型分类分成两种不同类型的数据库:
  • sql结构化数据库:里面存储的数据类型是结构化数据。别称:关系型数据库
  • nosql非结构化数据库:里面存储的数据类型是非结构化数据。别称:非关系型数据库

二、关系数据库与非关系型数据库

  • 关系数据库
    • 一个结构化的数据库,创建在关系模型基础之上
    • 一般面向于记录
    • 包括:Oracle、MySQL、SQL Server、Microsoft Access、DB2等
  • 非关系型数据库
    • 除了主流的关系型数据库外的数据库,都认为是非关系型
    • 包括:Redis、MongoDB、HBASE、CouhDB等

三、非关系型数据库产生背景

  • High performance——对数据库高并发读写需求
  • Huge Storage——对海量数据高效存储于访问需求
  • High Scalability && High Availability——对数据库高可扩展性与高可用性需求

四、Redis简介

  • Redis基于内存运行并支持持久化
  • 采用key-value(键值对)的存储形式
  • 优点:
    • 具有极高的数据读写速度
    • 支持丰富的数据类型
    • 支持数据的持久化
    • 原子性
    • 支持数据备份

五、Redis的数据类型

Redis支持物种数据类型:string(字符串),hash(哈希)、list(列表)、set(集合)、以及zset(sortedset:有序集合)

5.1 String(字符串)

  • string是redis最基本的类型,可以理解成与Memcached一模一样的类型,一个key对应一个value
    • string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象
    • string类型是redis最基本的额数据类型,string类型的值最大能存储512MB
    • 实例:set键值设置键值对get键获取键的值
      Set string1 8
      get string1
      8
      Incr string1(自增1)
      9
      Decr string1(自减1)
      8
      Decrby string1 2(减少2)
      6
      Incrby string1 5 (在基础上增加5)
      11

5.2 Hash(哈希)

  • Redis hash 是一个键值(key=>value)对集合
  • Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象
  • 实例:Hset:添加hash数据 hget:获取hash数据 hmget:获取多个hash数据

5.3 list(列表)

  • Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
  • 实例:lput:从左边推入值(lpop):从左边弹出值(rpush):从右边推入值(rpop):从右边弹出值 len:查看某个list数值类型的长度

5.4 set(集合)

  • Redis的set是string类型的无序集合
  • 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是o(1)。
  • sadd命令 ,添加一个string元素到key对应的set集合中,成功返回1,如果元素已经在集合中返回0
  • sadd key member
  • scard:查看set数据中存在的元素个数
  • sismember:判断set数据中是否存在某个元素
  • srem:删除某个set数据中的元素

5.5 zset(sorted set:有序集合)

Redis zset 和set一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
zset 的成员是唯一的,但是分数(score)却可以重复。

5.6 各个数据类型应用场景

String(字符串)二进制安全可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M
Hash(字典)键值对集合,即编程语言中的Map类型适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值(Memcached中需要取出整个字符串反序列化成对象修改完再序列化存回去)存储、读取、修改用户属性
List(列表)链表(双向链表)增删快,提供了操作某一段元素的API1、最新消息排行等功能
2、消息队列
Set(集合)哈希表实现,元素不重复1、添加、删除,查找的复杂度都是0
2、为集合提供了求集合、并集、差集等操作
1、共同好友
2、利用唯一性,统计访问网站的所有独立ip
3、好友推荐时,根据tag求交集,大于某个阈值就可以推荐
Sorted将sed中的元素增加数据插入集合时,已经进行天然排序1、排行榜
2、带权重的消息队列

六、Redis部署

##编译安装redis
tar zxvf redis-5.0.4.tar.gz
cd redis-5.0.4/
make
make PREFIX=/usr/local/redis install

## 优化路径并启动
ln -s /usr/local/redis/bin/* /usr/local/bin/
cd utils/
./install_server.sh
##修改配置文件,添加本机地址
vi /etc/redis/6379.conf
bind 192.168.40.10 127.0.0.1

## 重启
/etc/init.d/redis_6379 stop
/etc/init.d/redis_6379 start

## 远程连接数据库
redis-cli -h 192.168.40.10 -p 6379

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值