redis 基础
redis
1、redis是一种nosql数据库,他的数据是保存在内存中,同时redis可以定时把内存数据同步到磁盘,即可以将数据持久化,并且他比memcached支持更多的数据结构、
2 、redis 属于 非关系型数据库
redis和memcached的比较
|
memcached |
redis |
类型 |
纯内存数据库 |
内存磁盘同步数据库 |
数据类型 |
在定义value时就要固定数据类型 |
不需要 |
虚拟内存 |
不支持 |
支持 |
过期策略 |
支持 |
支持 |
存储数据安全 |
不支持 |
可以将数据同步到dump.db中 |
灾难恢复 |
不支持 |
可以将磁盘中的数据恢复到内存中 |
分布式 |
支持 |
主从同步 |
订阅与发布 |
不支持 |
支持 |
持久化
redis提供了两种数据备份方式,一种是RDB,另外一种是AOF。
RDB:RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘。 也是默认的持久化方式,这种方式是就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。可以通过配置设置自动做快照持久化的方式。
AOF:AOF持久化策略是将发送到Redis服务端的每一条命令都记录下来,并且保存到硬盘中的AOF文件中,类似打日志文件,来一条命令就记录一条。
操作系统:CentOS7.5
redis 版本:redis-5.0
1>下载
wget http://download.redis.io/releases/redis-5.0.0.tar.gz
2>解压到指定目录
3>进入到解压后的目录进行编译 ( 需要用到 gcc gcc-++ yum 可以安装)
4>安装
5>进入安装好的redis目录
6>添加到环境变量
这我已经添加一次了
6>启动
注:一定要加& 让它在后端运行,不然会在前端一直hang住
#查看端口
redis 的端口为 6379
#补充 关闭redis
7>连接上 redis-server
redis-cli -p 6379 -h127.0.0.1
#
8>添加 set key value (字符串)
将value 值 关联到 key ( 如果 value 已存在,将覆盖旧值,默认过期时间为永久)
9>取 key 下的 value ( get key)
10>删除 key( del key)
11>设置过期时间
12>查看过期时间
13>查看所有的key
14>切换数据库
redis 默认有16 个数据库。
select index ( 0 -- 15)
15>列表
&1在列表左边添加值 (会显示上面)
lpush key value 因为是列表, value 可以是多个,
#rpush key value
在列表右边添加值 (会显示在下面)
&2查看
lrange key start stop
lrange students 0 -1 ( -1 最后 ) ( 0 开始) 查看所有
&3>查看列表中有几个元素 (key中)
llen key
llen students
&4>取列表中的值
lindex key index
lindex students 2
&5>删除列表中的值
lrem key count value
lrem students 2 lijie
列表只有一个lijie ,所以只删掉了一个
16>集合
&1>添加元素
sadd key member (自动去重)
sadd name lijie lige lijie
&2> 查看元素
smembers key
smembers name
&3>删除元素
srem key member
serm name lijie
&4>查看集合中多少元素
scard key
&5>查看两个集合的交集
sinter key1 key2
sinter name2 name3
&6> 查看两个集合并集
sunion key1 key2
sunion name2 name3
&7>查看两个集合的差集
sdiff key1 key2
sdiff name2 name3
17>哈希操作 (字典套字典)
&1>添加一个新值
hest key field value ( field 相当于 key 里面的key)
hest lijie age 23
hest lijie high 170
hest lijie mariadb - 索引.note gender man
&2>获取哈希中 filed 中的值
hget lijie age
hget lijie high
lijie&3>删除 哈希中 key 里的 field
hdel age
注:可以删除多个 filed
&4>获取某个哈希中所有 fleld 和 value
hgetall key
&5>获得某个哈希中的所有field
hkeys key
\
&6>判断哈希中是否存在某个field
hexists key field
hexists lijie age
&7>获取哈希中总共的键值对
hlen key
hlen lijie