非关系数据库redis的配置

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

1.1 关系型数据库

  • 一个结构化的数据库,创建在关系模型基础上,也叫做结构化数据库,用来存储结构化数据,可以通过二维表格形式表述这个数据
  • 一般面向于记录
  • 主要包括
    Oracle、MySQL、SQL Server、Microsoft Access、DB2等

1.2 非关系型数据库

  • 用来存储不便以二维表格形式表示的数据类型的数据的数据库,也称为非结构化数据库。
  • 除了主流的关系型数据库外的数据库,都认为是非关系型
  • 主要包括
    Redis、MongBD、Hbase、CouhDB等
  • 产生背景即优势
    High performance——对数据库高并发读写需求Huge Storage——对海量数据高效存储与访问需求
    High Scalability && High Availability——对数据库高可扩展性与高可用性需求

二、Redis

2.1 redis概述

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

2.2 redis与memcached的比较

Memcached Redis
类型 Key-value数据库 Key-value数据库
过期策略 支持 支持
数据类型 单一数据类型 五大数据类型
持久化 不支持 支持
主从复制 不支持 支持
虚拟内存 不支持 支持

2.3 redis支持的五大数据类型

2.3.1 string(字符串)

  • string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。
  • string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。
  • string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。

2.3.2 Hash(哈希)

  • Redis hash 是一个键值(key=>value)对集合。
  • Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。

2.3.3 List(列表)

  • Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

2.3.4 Set(集合)

  • Redis 的 Set 是 string 类型的无序集合。
  • 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 0和1,其中1表示成功,0表示失败。

2.3.5 zset(sorted set:有序集合)

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

三、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/bin
cd redis-5.0.4/utils/
./install_server.sh

在这里插入图片描述

netstat -anptu | grep redis
/etc/init.d/redis_6379 stop
/etc/init.d/redis_6379 start
netstat -anptu | grep redis
redis-cli
若想要通过ip地址来连接的话,则需要在配置文件中修改,加上ip地址。
vi /etc/redis/6379.conf
bind 127.0.0.1 192.168.10.11
/etc/init.d/redis_6379 restart

在这里插入图片描述

四、五大数据类型的应用实例

4.1 redis中关于string的操作

set key value(set a 5)	# 设置字符串a为5
get key (get a)		# 读取字符串a
incr key (incr a)		# 自增长字符串a,数值为1
decr key (decr a)		# 自下降字符串a,数值为1
incrby key b(incrby a 2)	# 自定义增长字符串a,增长数值为2
decrby key b(decrby a 3)	# 自定义下降字符串a,下降数值为3

在这里插入图片描述

4.2 redis中关于hash的操作

hset hash key1 value1	# 单次存储一个字符串
hset hash key2 value2 key3 value3	# 单次存储多个字符串
hget key1			# 单次读取一个字符串
hmget key2 key3		# 单次读取多个字符串

在这里插入图片描述

4.3 redis中关于list的操作

  • list列表中的数据遵循着先写进然后进入最右边的情况,所以有着出入的顺序关系。

  • 位置从0开始,依次递增

      lpush  list1 1	# 从左添加一个字符串
      rpush list1 2	# 从右边添加一个字符串
      lpop list1 		# 从左边取出一个字符串
      rpop list1		# 从右边取出一个字符串
      llen list 		# 显示指定字符串的长度
      lrange list 0 2 	# 从左显示字符串的值
    

在这里插入图片描述

4.4 redis中关于set(无序集合)的操作

  • set是string的无序集合

      sadd set 1	# 添加set数据中元素,成功返回1 ,失败返回0
      smembers set	# 查看set数据元素
      srem set 1 	# 删除数据set中元素1
      sismember set 1	# 查看set数据中是否存在元素1,存在返回1 ,不存在返回0
    

在这里插入图片描述

4.5 redis中关于zset(有序集合)的操作

 zset通过分数为集合中的成员进行从小到大的排序
zadd 数组 数值 名称 		# 为数组添加指定数值的名称值
zrange 数组 0 10 		# 只显示名称排序,从小到大,0为第一个
zrange 数组 0 10 withscores 	# 附带数组排序显示,从小到大

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_50344820/article/details/111306707