Redis基本概念

2018-10-21  本文已影响0人  Trouble_Ma

1,redis也有数据库的概念,一个数据库中可以保存一组数据;

2,各个数据库之间是相互隔离的,当然也可以在不同数据库之间复制数据;

3,一般一个应用会单独使用一个数据库;

4,每一个数据库都有一个id号,默认的数据库id为0;

5,可以使用select命令选择当前使用的数据库:

127.0.0.1:6379> select 1

OK

127.0.0.1:6379[1]> select hello

nil

6,redis初始化的时候会默认创建16个数据库(这个配置可以在redis配置文件中databases 16);

7,特别注意,类似redis的key-value数据库系统,是绝对没有表的概念,可以简单理解为,所有的数据都是乱七八糟的堆在一起的;

Command

1.redis中提供了非常大量的命令来方便的操作数据库中的数据;

2.redis的命令可以简单理解为mysql的SQL命令;

3,redis命令分为

1,对数据的操作;

2,发布/订阅相关操作;

3,事务控制;

4,脚本命令;

5,连接服务器命令;

6,数据库服务相关命令;

Key-Value

1,key用来标记一个数据;一般在key中需要尽量标明数据的名字,比如用于标示一个对象的时候,可以使用user:1000来作为key,代表id为1000的用户对象;

2,value表示一个key对应的值;在redis中,数据可以是任何内容,redis把所有的value都作为byte数组处理;所以可以用来保存任何内容;

例子:向redis中存储一个json字符串:

set user:1 '{"id":1,"name":"stef","age":18}'

获得这个值:

get user:1

3,redis最突出的特点是提供了5种常用的数据存储类型(value的类型),深刻理解这5中数据结构和各自的使用场景,对redis的使用有很大帮助;

Query

1,在redis中,不支持对value进行任何形式的查询;

例如,保存一个user:

set user:1 '{name:"hello",id:1}'

是无法通过redis去查询name为hello的user;要查询的内容,只能反映在key值上,所以如果要按照用户的name查询,只能再添加一条数据:

set user:name:stef 1

2,redis不是一个适用于任何场景的存储方案,考虑使用redis需要对业务进行考评,用redis的思想去重新设计数据结构;

存储

1,redis可以作为内存数据库,也可以把数据持久化到磁盘上;

2,默认情况下,redis每60秒/1000key数据修改或者15分钟/9个以下key修改;

在redis配置文件中:

save 900 1

save 300 10

save 60 10000

3,数据默认存储在安装目录下.rdb文件中(可以在配置文件中dbfilename dump.rdb配置);

4,redis也可以设置为append模式,每次key的修改都会append到文件中,这种方式有可能丢失60秒的数据;

1,通过配置:appendonly yes开启

2,appendfilename "appendonly.aof"设置append文件;

3,可以设置append的模式(类似于mysql的事务文件同步机制):

    # appendfsync always:每次更新key及时同步到append文件;

       appendfsync everysec:每一秒同步一次key的更新;

    # appendfsync no:不管理append文件的更新,根据操作系统去定

存储

1,redis可以作为内存数据库,也可以把数据持久化到磁盘上;

2,默认情况下,redis每60秒/1000key数据修改或者15分钟/9个以下key修改;

在redis配置文件中:

save 900 1

save 300 10

save 60 10000

3,数据默认存储在安装目录下.rdb文件中(可以在配置文件中dbfilename dump.rdb配置);

4,redis也可以设置为append模式,每次key的修改都会append到文件中,这种方式有可能丢失60秒的数据;

1,通过配置:appendonly yes开启

2,appendfilename "appendonly.aof"设置append文件;

3,可以设置append的模式(类似于mysql的事务文件同步机制):

    # appendfsync always:每次更新key及时同步到append文件;

       appendfsync everysec:每一秒同步一次key的更新;

    # appendfsync no:不管理append文件的更新,根据操作系统去定
上一篇 下一篇

猜你喜欢

热点阅读