1.redis基础
1.nosql
学名(not only sql) 特点: 存储结构与mysql这一种关系型数据库完全不同,nosql存储的是KV形式 nosql有很多产品,都有自己的api和语法,以及业务场景 产品种类: Mongodb redis Hbase hadoop
2.yum安装redius
#前提得配置好阿里云yum源,epel源 #查看是否有redis包 yum list redis #安装redis yum install redis -y #安装好,启动redis systemctl start redis
3. 源码编译安装
1.下载redis源码 wget http://download.redis.io/releases/redis-4.0.10.tar.gz 2.解压缩 tar -zxf redis-4.0.10.tar.gz 3.切换redis源码目录 cd redis-4.0.10.tar.gz 4.编译源文件 make 5.编译好后,src/目录下有编译好的redis指令 6.make install 安装到指定目录,默认在/usr/local/bin
redis可执行文件
./redis-benchmark //用于进行redis性能测试的工具 ./redis-check-dump //用于修复出问题的dump.rdb文件 ./redis-cli //redis的客户端 ./redis-server //redis的服务端 ./redis-check-aof //用于修复出问题的AOF文件 ./redis-sentinel //用于集群管理
4. redis配置文件
redis配置文件名为 redis.conf 这个文件可以自定义
5. redis核心配置项
绑定ip,如需要远程访问,需要填写服务器ip bind 127.0.0.1 端口,redis启动端口 port 守护进程方式运行 daemonize yes rdb数据文件 dbfilename dump.rdb 数据文件存放路径 dir /var/lib/redis/ 日志文件 logfile /var/log/redis/redis-server.log 主从复制 slaveof
6. 启动redis服务端
启动redis非常简单,直接./redis-server就可以启动服务端了,还可以用下面的方法指定要加载的配置文件: ./redis-server ../redis.conf 默认情况下,redis-server会以非daemon的方式来运行,且默认服务端口为6379。
7.redis数据结构
redis是一种高级的key:value存储系统,其中value支持五种数据类型
字符串(strings)
散列(hashes)
列表(lists)
集合(sets)
有序集合(sorted sets)
8. 基本命令
keys * 查看所有key type key 查看key类型 expire key seconds 过期时间 ttl key 查看key过期剩余时间 -2表示key已经不存在了 persist 取消key的过期时间 -1表示key存在,没有过期时间 exists key 判断key存在 存在返回1 否则0 del keys 删除key 可以删除多个 dbsize 计算key的数量
9 数据结构
- strings类型
- set key value
- get key
- mset k1 v1 k2 v2
- mget k1 v1
- del k1
- incr k1
- decr k1
- list类型
- lpush
- rpush
- lrange 0 -1
- ltrim 1 2 : 保留第二个到第三个元素
- lpop
- rpop
- lpushx/rpushx : 存在则添加值, 不存在则不处理
- sets集合类型
- sadd/srem 添加删除元素
- sismember 判断是否为set的一个元素
- smembers 返回集合所有成员
- sdiff 返回一个集合和其他集合的差异
- sinter 返回几个集合的交集
- sunion 返回几个集合的冰机
- 有序集合
- 用来保存需要排序的数据, 例如排行榜, 成绩, 工资等
- zadd zoo 10 alex
- zrange zoo 0 -1 withscores
- zreverrange zoo 0 -1 withscores 倒叙
- zrem zoo alex
- zcard zoo : return long of set
- zscore zoo alex : 返回成员的score值
- zrank alex : 返回成员的排名
- 哈希结构 : k1 -> k2 : v2 ,如同字典套字典 { k1 : { k2 : v2 } }
- hset k1 k2 v2
- hget k1 k2
- hmset zhang age 27 sex man
- hmget zhang age sex
- hsetnx zhang age 2
- hkeys zhang : 返回所有keys
- hvals zhang : 返回所有values
- hlen : 返回三列包含域 field 的数量
- hdel 删除三列指定的域 field
- hexists 判断是否存在