1.什么是Redis
Redis 是一个速度非常快的非关系型数据库(non-relational database),它可以存储键与5种不同类型的值之间的映射,可以将存储在内存的键值对数据持久化到硬盘,可以使用复制特性来扩展读性能,还可以使用客户端分片来扩展写性能。
2.Redis与其他软件的区别
3.为什么要使用Redis
1.对比Memcached,元素列表的CRUD比较
memcached使用APPEND命令来管理元素列表,用户可以将元素追加到一个字符串的末尾,并将那个字符串当作列表来使用。但删除这些元素时,memcached采用的办法是通过黑名单来隐藏列表里面的元素,从而避免对元素执行添加或删除等操作。
相反,redis的LIST和SET允许用户直接添加或者删除元素
2.存储长期的报告数据时,并将这些报告数据用作固定时间范围内的聚合数据场景
一般的做法是:先将各个行插入一个报告表里面,之后再通过扫描这些行来手机聚合数据,并根据收集到的聚合数据来更新聚合表中已有的那些行。插入行的速度非常快,因为只会在硬盘文件末尾进行写入动作。但是对表里面的行进行更新却很慢,因为不仅要磁盘随机读,还可能要磁盘随机写操作。
Redis就可以通过INCR命令及其变种来计算聚合数据,并且因为Redis将数据存储在内存里,而且发送给Redis的命令请求并不需要经过典型查询分析器或者查询优化器进行处理,所以Redis存储的数据执行随机写的速度总是非常迅速的。
4.Redis的安装(linux系统)
安装redis需要c语言的编译环境。如果没有gcc需要在线安装。yum install gcc-c++
安装步骤:
第一步:redis的源码包上传到linux系统。
第二步:解压缩redis。
第三步:编译。进入redis源码目录。make
第四步:安装。make install PREFIX=/usr/local/redis
PREFIX参数指定redis的安装目录。一般软件安装到/usr目录下。
连接redis
redis的启动:
前端启动:在redis的安装目录下直接启动redis-server
[root@localhost bin]# ./redis-server
后台启动:
把/root/redis-3.0.0/redis.conf复制到/usr/local/redis/bin目录下
[root@localhost redis-3.0.0]# cp redis.conf /usr/local/redis/bin/
修改上面复制的redis.conf:
[root@localhost redis-3.0.0]# vi redis.conf
#启动redis
[root@localhost bin]# ./redis-server redis.conf
查看redis进程:
[root@localhost bin]# ps aux|grep redis
root 5190 0.1 0.3 33936 1712 ? Ssl 18:23 0:00 ./redis-server *:6379
root 5196 0.0 0.1 4356 728 pts/0 S+ 18:24 0:00 grep redis
[root@localhost bin]#
连接和关闭连接redis:
使用Redis-cli进行连接:
[root@localhost bin]# ./redis-cli
默认连接localhost运行在6379端口的redis服务。
[root@localhost bin]# ./redis-cli -h 192.168.25.153 -p 6379
-h:连接的服务器的地址
-p:服务的端口号
关闭redis:
[root@localhost bin]# ./redis-cli shutdown
5.Redis数据类型的用法
String:
常用命令:
GET:获取存储在给定键中的值
SET:设置存储在给定键中的值
DEL:删除存储在给定键中的值
LIST:
RPUSH:将给定值推入列表的右端
LRANGE:获取列表在给定范围上的所有值
LINDEX:获取列表在给定位置上的单个元素
LPOP:从列表的左端弹出一个值,并返回被弹出的值
SET:
SADD:将给定元素添加到集合
SMEMBERS:返回集合包含的所有元素
SISMEMBER:检查给定元素是否存在于集合中
SREM:如果给定的uansu存入于集合中,那么移除这个元素
HASH:
HSET:在散列里面关联起给定的键值对
HGET:获取指定散列键的值
HGETALL : 获取散列包含的所有键值对
HDEL:如果给定键存在于散列里面,那么移除这个键
ZSET:
ZADD:将一个带有给定分数的成员添加到有序集合中
ZRANGE:根据元素在有序排列中所处的位置,从有序集合里面获取多个元素
ZRANGEBYSCORE : 获取有序集合在给定分值范围内的所有元素
ZREM:如果给定成员存在于有序集合,那么移除这个成员