Redis 简介
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 是属于非关系型数据库
1.数据比模型较简单
2.需要灵活性更强的IT系统
3.对数据库性能要求较高
4.不需要高度的数据一致性
5.对于给定的key,比较容易映射复杂值的环境
Redis简介
优点:
对数据高并发读写
对海量数据的高效率存储和访问
对数据的可扩展性和高可用性
缺点:
redis(ACID处理非常简单)
ACID,指数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。一个支持事务(Transaction)的数据库,必须要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求。
无法做到太复杂的关系型数据库模型
Redis持久化两种机制rdb和aof
Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
redis的安装
redis的服务端安装
gcc编译c的,因为redis是c编写的,所以我们先安装下gcc、
yum install gcc-c++
下载redis压缩包 并解压
reids的各个版本的下载地址:
http://download.redis.io/releases/
第一种方式是 在线安装
yum -y install wget
wget http://download.redis.io/releases/redis-5.0.2.tar.gz
第二种是直接去reis官网下载离线安装包,上传到Linux中,推荐使用第二种 (在网速不是很快的情况下,我百度云中已经提供了安装包)。
Tar -xvf redis-5.0.2.tar.gz(解压)
编译
cd redis-5.0.2/(进入目录)
Make(编译)
修改配置文件 redis.conf
redis-5.0.2 /redis.conf
将配置文件中的 daemonize 修改成 yes 。这是 开启守护进程,不开启的话,不能做其他操作
#daemonize no
daemonize yes
启动 redis
可以操作如下(指定redis.conf)
./src/redis-server redis.conf
使用reids客户端工具 reids-cli 测试是否成功
./src/redis-cli (使用redis)
连接上后运行ping 命令。如果输出如下结果就代表成功了:
配置密码登录
vi /etc/redis/redis.conf #编辑redis配置文件
#找到下面这一行并去除注释,并添加密码(396行)
#requirepass foobared #修改前
requirepass 123456 #修改后
注1:配置完成密码后,以后登录就密码按下面的命令进行登录
./redis-cli -h 127.0.0.1 -p 6379 -a 123456
开放端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
跟新防火墙规则
firewall-cmd --reload
防火墙列表
firewall-cmd --zone=public --list-ports
防火墙状态
systemctl status firewalld
启动防火墙
systemctl start firewalld
2.4重启redis或ubuntu
service redis-server restart
#reboot
可视化管理工具redis-desktop-manager安装与配置
双击redis-desktop-manager-0.8.8.384.exe即可无脑式的下一步就可以了
出现这个可能是防火墙没有关掉
出现这个就可以了
redis基本的操作
通过命令操作redis(命令不区分大小写) redis默认的数据库有16,mongodb是3个:admin/local/test redis-cli #打开redis终端 select index #选择指定的数据库,默认的数据库有16,mongodb是3个:admin/local/test #字符串 set name #保存 get name #获得 type name #查看类型 keys * del name #哈希(Hash),Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象 hset key attr1 value1 attr2 value2 hget key attr1 hgetall key #列表(List) lpush key value1 value2 value3 llen key lindex key index lrange key start stop #stop可以为-1,到末尾的意思 #Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。 sadd key value #sadd idcard 100 sadd key value1 value2 vlaue3 scard key sscan key cursor [MATCH pattern] [COUNT count] exists key #检查key是否存在
今天就到这里了