Redis

一、什么是Redis
  1. Redis是一款内存高速缓存数据库,全称为:Remote Dictionary Server(远程数据服务)。
  2. Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
  3. Redis是与其他key-value缓存产品有以下三个特点:
  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • Redis支持数据的备份,即master-slave模式的数据备份。
二、Redis特点
Redis以内存作为数据存储介质,所以读写数据的效率极高,远远超过数据库。
以设置和获取一个256字节字符串为例,它的读取速度可高达110000次/s,写速度高达81000次/s。

Redis跟memcache不同的是,储存在Redis中的数据是持久化的,断电或重启后,数据也不会丢失。
因为Redis的存储分为内存存储、磁盘存储和log文件三部分,重启后,Redis可以从磁盘重新将数据加载到内存中,
这些可以通过配置文件对其进行配置,正因为这样,Redis才能实现持久化。
三、redis数据类型
Redis支持五种数据类型:
string(字符串),hash(哈希),list(列表),
set(集合)及zset(sorted set:有序集合)。
  1. string(字符串)
redis 127.0.0.1:6379> SET name "runoob"
OK
redis 127.0.0.1:6379> GET name
"runoob"
  1. hash(哈希)
127.0.0.1:6379> HMSET user:1 username runoob password runoob points 200
OK
127.0.0.1:6379> HGETALL user:1
1) "username"
2) "runoob"
3) "password"
4) "runoob"
5) "points"
6) "200"
  1. list(列表)
redis 127.0.0.1:6379> lpush runoob redis
(integer) 1
redis 127.0.0.1:6379> lpush runoob mongodb
(integer) 2
redis 127.0.0.1:6379> lpush runoob rabitmq
(integer) 3
redis 127.0.0.1:6379> lrange runoob 0 10
1) "rabitmq"
2) "mongodb"
3) "redis"
  1. set(集合)
redis 127.0.0.1:6379> sadd runoob redis
(integer) 1
redis 127.0.0.1:6379> sadd runoob mongodb
(integer) 1
redis 127.0.0.1:6379> sadd runoob rabitmq
(integer) 1
redis 127.0.0.1:6379> sadd runoob rabitmq
(integer) 0
redis 127.0.0.1:6379> smembers runoob
1) "rabitmq"
2) "mongodb"
3) "redis"
  1. zset(sorted set:有序集合)
redis 127.0.0.1:6379> zadd runoob 0 redis
(integer) 1
redis 127.0.0.1:6379> zadd runoob 0 mongodb
(integer) 1
redis 127.0.0.1:6379> zadd runoob 0 rabitmq
(integer) 1
redis 127.0.0.1:6379> zadd runoob 0 rabitmq
(integer) 0
redis 127.0.0.1:6379> zrange runoob 0 1000
1) "redis"
2) "mongodb"
3) "rabitmq"
四、出现的一些问题
  1. 连接远程redis出现java.net.SocketTimeoutException: connect timed out
这种一般是远程安装Redis的防火墙没有关闭,由于我使用的是centos 6.5。
所以这里介绍centos6.5关闭防火墙的步骤
(所有的命令都是在管理员权限下执行)
关闭命令:  service iptables stop
永久关闭防火墙:chkconfig iptables off
两个命令同时运行,运行完成后查看防火墙关闭状态
service iptables status
  1. linux系统如何在文本内搜索字符串?
进入VI后,按/,然后输入字符串,回车,按N或者n是向前向后搜索该字符串
  1. 出现DENIED Redis is running in protected mode
默认情况下redis运行在保护模式(这种模式下,访问不需要密码)
进入到redis.conf中,修改protected-mode yes为protected-mode no
重新启动redis服务,要想配置文件起效,启动的时候,必须指定配置文件。
 [root@localhost src]# ./redis-server ../redis.conf
  1. 出现Connection refused
配置文件redis.conf配置了只在127.0.0.1上绑定监听,取消一下。
进入到redis.conf中,删除bind 127.0.0.1
重新启动redis服务。
五、关系型数据库与非关系型数据库
  1. 关系型数据库是指采用了关系模型来组织数据的数据库,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织,数据是存储在硬盘中,可以存储海量数据。
  2. 非关系型数据库是的数据存储在缓存中,查询速度很快,存储格式是以键值为存储方式如key,value形式、文档形式、图片形式等等,所以可以存储基础类型以及对象或者是集合等各种格式。
六、redis与mysql的区别
  1. redis是key,value的非关系型数据库 ,同时还支持list,set,zset,hash等数据结构的存储,它运行在内存中但是可以持久化到磁盘,所以读写速度很快。
  2. musql是关系型数据库,无论数据还是索引都存放在硬盘中。到要使用的时候才交换到内存中,相对来说读写速度就比较慢。

转载于:https://my.oschina.net/u/3292411/blog/868965

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值