Redis
Redis简介
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
Redis的优势
-
性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
-
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
-
原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是 原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
-
丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
Redis与其他的key-value有什么不同
-
Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
-
Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
Redis的安装和可视化工具
Redis的下载:小编这里使用的是5.0.2的版本
下载完后就可以通过Winscp放到一个自己定好的位置(不明白的可以看一看Linux环境搭建)
下面这个是我安装的目录:
Redis编译环境
到redis 5.0.2的目录下执行!
输入 make
等待编译结束,结束后,我们就可以启动redis了
输入:./src/redis-server redis.conf
可是这个redis默认就只有一个主线程,守护线程是默认关闭的
导致不能进行其他的操作。
为了让我们不出现错误,最好在修改文件之前最好考个复制:
所以我们要改变redis.conf这个文件
#daemonize no 为 daemonize yes
小编这里是直接使用SecureFX连接工具直接修改的
里面需要修改的东西一共有三个
1.将 daemonize no 修改为daemonize yes
2.将bind 127.0.0.1 注销
3.#找到下面这一行并去除注释,并添加密码(396行)
#requirepass foobared #修改前
requirepass 123456 #修改后
对了,差一点就忘记了,做了这些修改后你还是连接不上的,为什么呢?原因很简单就是我们在Linux里面没有访问权限,我们需要从新设置一下防火墙
firewall-cmd --zone=public --add-port=6379/tcp --permanent
跟新防火墙规则
firewall-cmd --reload
防火墙列表
firewall-cmd --zone=public --list-ports
防火墙状态
systemctl status firewalld
启动防火墙
systemctl start firewalld
做完这些我们需要从新启动我们的Linux
开启代码:
vi /etc/redis/redis.conf #编辑redis配置文件
#找到下面这一行并去除注释,并添加密码(396行)
#requirepass foobared #修改前
requirepass 123456 #修改后
配置完成密码后,进入文件夹以后登录就密码按下面的命令进行登录
./redis-cli -h 127.0.0.1 -p 6379 -a 123456
可视话工具
下载地址:https://pan.baidu.com/s/1fEFyBXbYs5JRIXvGTb0Oiw
提取码:855i
我们就可以直接使用连接上了
Redis操作语法
因为有了可视化工具,所以我们大可用工具创建值。
但是如果想用命令操作也是可以的
2. Redis支持五种数据类型
string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)
3. 通过命令操作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是否存在