redis基础知识

来源:互联网 发布:淘宝腾讯会员 编辑:程序博客网 时间:2024/05/22 02:08

redis在java中的使用:http://blog.csdn.net/u012385190/article/details/53464621

一、介绍

什么叫缓存
  在开发网站的时候,如果有一些数据在短时间之内不会发生变化,而他们还要被频繁访问,为了提高用户的请求速度和降低网站的负载,就把这些数据放到一个读取速度更快的介质上(或者是通过较少的计算量就可以获得该数据),该行为就称作对数据的缓存。该介质可以是文件、数据库、内存。内存经常用于数据缓存。
  
缓存的两种形式
页面缓存:经常用在CMS内存管理系统里边,如新闻页面,内容主体单一集中 (smarty页面缓存–>将页面缓存成静态);
数据缓存:经常用在页面的具体数据里边。比如商品页面的组成部分根据业务特点(如热卖、推荐、正常商品),各个部分数据比较独立,适合给他们分别数据缓存;

什么是redis
  redis是内存高速缓存的数据库,redis内部有多个数据库(在redis-conf文件中有配置,用户可以通过select 下标来选择数据库),它保存的数据模型为key-value,支持String/List/Set/Sorted/Zset等类型。redis可将数据从内存持久化到硬盘,保证了数据安全,最重要的是使用缓存减轻了数据库的负载。

redis和memcache比较
1、redis不仅仅支持简单的key/value类型的数据,同时还提供list,set,zset,hash等数据结构的存储;
2、redis支持master-slave(主-从)模式应用;
3、redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用;
4、redis单个vlaue的最大限制是1GB,memcached只能保存1MB的数据;

二、redis的安装和简单使用

linux环境安装参考:http://www.jb51.net/article/79096.htm
1、安装
把redis上传到linux环境下
对redis进行make及install
在src目录下的文件:
解压:taz zxvf redis-tar-gz
redis-server:启动redis服务脚本文件;
redis-cli:终端操作脚本;
redis-benchmark:压力测试文件;
redis-check-aof,redis-check-dump:检测备份文件脚本;

创建redis运行目录,并复制redis-cli和redis-server两个文件过去:
mkdir/usr/local/redis
cp redis-cli redis-server /usr/local/redis
给redis运行目录再copy一个配置文件:
redis.conf文件也拷贝进去,该文件在redis解压目录里面;

前端启动:
./redis-server ctrl+c(退出关闭)
注意:这里直接执行Redis-server 启动的Redis服务,是在前台直接运行的,也就是说,执行完该命令后,如果Lunix关闭当前会话,则Redis服务也随即关闭。正常情况下,启动Redis服务需要从后台启动,并且指定启动配置文件。
后台启动:
修改redis.conf配置文件,设置demonizc no:前端,yes:后台
启动命令:./redis-server redis.conf

查看进程:ps -ef|grep redis

2、简单操作
启动客户端:./redis-cli
设置和获取key值:
set name tom
get name
关闭redis-cli(客户端):quit(或者ctrl+c)

3、设置密码
在文件redis-conf中找到#requirepass foobared ,除掉注释,修改成自己的密码

requirepass myRedis

比如以上就将自己的密码设置成了myRedis
然后重启redis服务

sudo ./redis-server /opt/redisAll/etc/redis.conf

再次打开redis客户端发现需要输入密码了,如下:
这里写图片描述

三、常用类型操作

1、redis支持的数据类型:
keys–给存储在redis中的数据起的变量名字
values–Strings/Lists/Sets/Sorted sets/Hash

……………………………………………………………………………分割线………………………………………………………………

下面这些操作都要启动redis-cli进行操作

2、key键操作
这里写图片描述

其中选择数据库为select 0/1/2/3等(下标),redis默认有16个数据库(在redis.conf里有配置)

3、string操作
这里写图片描述

4、List集合操作
这里写图片描述

5、set集合操作
这里写图片描述

其中value值无序不重复;
关于set集合类型除了基本的添加删除操作,其他的操作还包含集合的取并集、交集、差集。

6、Sort Set排序集合操作
这里写图片描述

和set一样sorted set也是string类型元素的集合,不同的是每个元素都会关联一个权,通过权值可以有序的获取集合中的元素;
排序集合中的每个元素都是值、权的组合,而set集合类型每个元素就是只有一个value值;

7、hash类型操作
这里写图片描述

hash数据类型存储的数据与mysql数据库中存储的一条记录极为相似

四、持久化

  redis为了内部数据的安全考虑,会把本身的数据以文件形式保存到硬盘中一份,在服务器重启之后会自动把硬盘的数据恢复到内存(redis)里边。
  数据保存到硬盘的过程就称为”持久化”效果。
  redis持久化的相关配置都在redis-conf文件中。
  
redis持久化有两种方式:

1、快照持久化(snap shotting)

  该持久化默认开启,一次性把redis中全部的数据保存一份存储在硬盘中,如果数据非常多(10-20G)就不适合频繁该持久化操作。
快照持久化在本地硬盘自动保存的文件名默认叫dump.rdb。

在redis-conf文件中设置了save快照的频率:

这里写图片描述

手动发起快照持久化操作指令:./redis-cli bgsave
如果指定地址:./redis-cli -h ip -p port bgsave

2、AOF持久化(append only file)

本质:把用户执行的每个”写”指令(添加、修改、删除)都备份到文件中,还原数据的时候就是执行具体写指令而已;
开启AOF持久化(注意会清空redis已有的内部数据):在redis-conf配置文件中开启并保存持久化文件(默认为appendonly.aof)
配置文件被修改,需要杀死旧进程,再根据新的配置文件启动;

of追加持久化的备份频率在redis-conf中配置:如appendsync everysec(每秒追加一次)
这里写图片描述

为aof备份文件做优化处理:
比如incr这种累加的形式指令,会在备份文件中存在多个key 优化方法: ./redis-cli bgrewriteaof
这样在文件中将多个incr指令变为一个set指令了;

这里写图片描述

五、主从模式

  为了降低每个redis服务器的负载,可以设置几个,并做主从模式,一个服务器负载”写”数据,其他服务器负载”读”数据。主服务数据会”自动”同步给从服务器。
  这里写图片描述

在配置文件redis-conf中配置:
连接主redis: slaveof ip port
如果给从redis写的权限设置(不过一般如果给redis从服务器“写”的权利就没有意义了):slave-read-only no
然后保存文件,并杀死进程重启

至此redis基本介绍结束。

………………………………………………………学习地址………………………………………………………………………

推荐学习地址:http://www.redis.net.cn/

1 0
原创粉丝点击