redis基本使用

Posted 躺云飘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis基本使用相关的知识,希望对你有一定的参考价值。

 

1.数据库架构演变

 DAL是数据访问层的英文缩写,即为数据访问层(Data Access Layer)。其功能主要是负责数据库的访问。

 在项目实际开发过程,有的直接采用JDBC技术进行数据库持久化操作,有的采用目前很好用的ORM框架来进行数据库持久化操作。 ORM耦合度较高

mysql  单表可支持500万数据

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6.今天是什么样子: 淘宝   

nginx代替appche   高可用  负载均衡  两台nginx   应用服务器tomcat  集群    mysql集群

 

 

 

2.NOSQL

 

 

 

 

 

 

 

 能干什么

 

redis 一秒可以写8万次  读可以达到11万次

 

 

 

 

 

 

 

 

 

1.什么是bson

 

 

 

 高频词汇放到redis里面,会员  redis使用聚合模型来避免聚合查询,现在公司使用分布式部署,分库部署,与下图的分布式事务不是一个概念

 

 

redis的聚合模型

 

 

 

 

 

 

 

 

 

 

 

nosql 数据库的四大分类:  后面redis主要是k-v键值的形式

 

 

 

 

redis  kv键值类

 

文档数据库: MongoDB

 

 

 

 

 

 

 

 

 

 

 nosql是CAP

 

 

 CAP只能三选二   不能同时满足三个

 

再数据并发比较大时候,牺牲c(变为弱一致性) 达到高可用和分布式容错性的目的

base :基本可用

 

 

 

 

 

3.redis

1.是什么

 

memcache  被redis所取代,因为redis支持更多的数据类型

 

 

 

 

 2.能干什么

 

 

 3.下载地址

http://redis.io/
http://www.redis.cn/

4.安装

tar -zxvf redis-5.0.8.tar.gz
cd redis-5.0.8
make distclean # 清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件
make
make install
可以不 make test

补充:目录作用   /opt 主机额外安装软件摆放的目录   /etc  系统配置文件   /usr/local 软件的安装目录,包含软件的配置文件,再此启动软件

 

 5.启动

mkdir myredis
cp redis.conf  myredis
cd myredis
vim redis.conf

 

cd  /usr/local/bin
redis-server /usr/local/etc/redis-5.0.8/myredis/redis.conf
pe -ef | grep  redis
redis-cli -p 6379

ping  pong  即连接成功

 

SHUTDOWN 会杀掉server服务

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

------------恢复内容结束------------

------------恢复内容开始------------

 

1.数据库架构演变

 DAL是数据访问层的英文缩写,即为数据访问层(Data Access Layer)。其功能主要是负责数据库的访问。

 在项目实际开发过程,有的直接采用JDBC技术进行数据库持久化操作,有的采用目前很好用的ORM框架来进行数据库持久化操作。 ORM耦合度较高

mysql  单表可支持500万数据

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6.今天是什么样子: 淘宝   

nginx代替appche   高可用  负载均衡  两台nginx   应用服务器tomcat  集群    mysql集群

 

 

 

2.NOSQL

 

 

 

 

 

 

 

 能干什么

 

redis 一秒可以写8万次  读可以达到11万次

 

 

 

 

 

 

 

 

 

1.什么是bson

 

 

 

 高频词汇放到redis里面,会员  redis使用聚合模型来避免聚合查询,现在公司使用分布式部署,分库部署,与下图的分布式事务不是一个概念

 

 

redis的聚合模型

 

 

 

 

 

 

 

 

 

 

 

nosql 数据库的四大分类:  后面redis主要是k-v键值的形式

 

 

 

 

redis  kv键值类

 

文档数据库: MongoDB

 

 

 

 

 

 

 

 

 

 

 nosql是CAP

 

 

 CAP只能三选二   不能同时满足三个

 

再数据并发比较大时候,牺牲c(变为弱一致性) 达到高可用和分布式容错性的目的

base :基本可用

 

 

 

 

 

3.redis

1.是什么

 

memcache  被redis所取代,因为redis支持更多的数据类型

 

 

 

 

 2.能干什么

 

 

 3.下载地址

http://redis.io/
http://www.redis.cn/

4.安装

tar -zxvf redis-5.0.8.tar.gz
cd redis-5.0.8
make distclean # 清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件
make
make install
可以不 make test

补充:目录作用   /opt 主机额外安装软件摆放的目录   /etc  系统配置文件   /usr/local 软件的安装目录,包含软件的配置文件,再此启动软件

 

 5.启动

mkdir myredis
cp redis.conf  myredis
cd myredis
vim redis.conf

 

cd  /usr/local/bin
redis-server /usr/local/etc/redis-5.0.8/myredis/redis.conf   # 使用配置文件启动
pe -ef | grep  redis
redis-cli -p 6379

ping  pong  即连接成功

 

SHUTDOWN 会杀掉server服务

 

redis的使用

 1. redis的杂项知识

1.自测本机redis性能

cd  /usr/local/bin
redis-benchmark #自测本机性能

2.redis是个单进程   使用的epoll实现多路IO复用

 

 

 

3.默认16个库,0-15    
4. 切换库 select 3
5. 查看当前库key的数量 Dbsize
6.redis默认索引从0开始
7.默认端口6379
8.统一密码管理: 16个库都是同样的密码

 

3.redis的数据类型

key

keys * 查看 所有的key
exists key  的名字,判断key是否存在
move key db: move k1 2
expire key 秒钟:为给定的key设置过期时间
ttl key  查看还有多少秒过期:  time to  alive     过期之后此将被从此库中删除
set k2 doodo :  已存在则覆盖
get k2 :   获取value
append  :  append  k1 12345  ==> get k1   ==> \'ty12345\'
STRLEN k1 :   k1 value字符串长度   ==> 7

set k2 2 :
INCR k2 : 每次自增1
INCRBY k2 3 每次自增3
get k2: ‘3’为字符串
DECR k2
DECRBY k2 2

数据操作:字符串、列表、哈希(字典)、无序集合、有序(排序)集合
    有序集合:游戏排行榜
    
字符串:
    set key value
    get key
    mset k1 v1 k2 v2 ...  添加多个
    mget k1 k2 ...        查找多个
    setex key exp value   设置过期时间  
    incrby key increment  增加
    
列表:
    rpush key value1 value2 ...
    lpush key value1 value2 ...
    lrange key bindex eindex
    lindex key index
    lpop key | rpop key
    linsert key before|after old_value new_value
    
哈希:
    hset key field value
    hget key field
    hmset key field1 value1 field2 value2 ...
    hmget key field1 field2
    hkeys key
    hvals key
    hdel key field
    
集合:
    sadd key member1 member2 ...
    sdiff key1 key2 ...
    sdiffstore newkey key1 key2 ...
    sinter key1 key2 ...
    sunion key1 key2 ...
    smembers key
    spop key
    
有序集合:
zadd key grade1 member1 grade2 member2 ...  # 添加数据  zadd game 10 jeff 20 bob 30 tom
    zincrby key grade member     # 给指定添加   zincrby game 40 jeff
    zrange key start end        # 取后3名 zrange game 0 2
    zrevrange key start end        #取前3名    zrevrange game 0 2

4.redis的配置

 密码管理

"""
***在windows上配置好验证需要前台启动
1)提倡在配置文件中配置,采用配置文件启动
requirepass 密码

2)当服务启动后,并且连入数据库(redis数据库不能轻易重启),可以再改当前服务的密码(服务重启,密码重置)
config set requirepass 新密码

3)已连入数据库,可以查看当前数据库服务密码
config get requirepass

auth 输入密码
"""

 

 

 连接数据库

1)默认连接:-h默认127.0.0.1,-p默认6379,-n默认0号数据库,-a默认无密码
>: redis-cli     未改端口,默认6379
>: redis-cli -p 6380  比如改了端口的情况下

2)完整连接:
>: redis-cli -h ip地址 -p 端口号 -n 数据库编号 -a 密码

3)先连接,后输入密码
>: redis-cli -h ip地址 -p 端口号 -n 数据库编号
>: auth 密码

数据持久化 *********    RDB && AOF

RDB

 

 

 

 

1)配置文件默认配置
save 900 1  # 超过900秒有1个键值对操作,会自动调用save完成数据持久化
save 300 10  # 超过300秒有10个键值对操作,会自动调用save完成数据持久化
save 60 10000  # 超过60秒有10000个键值对操作,会自动调用save完成数据持久化

2)安全机制
# 当redis服务不可控宕机,会默认调用一下save完成数据持久化(如果数据量过大,也可能存在部分数据丢失)

3)主动持久化
>: save  # 连入数据库时,主动调用save完成数据持久化

注:数据持久化默认保存文件 dump.rdb,保存路径默认为启动redis服务的当前路径

 

 

 redis的常用配置

1)绑定的ip地址,多个ip用空格隔开
bind 127.0.0.1

2)端口,默认6379,一般不做修改
port 6379

3)是否以守护进程启动,默认为no,一般改为yes代表后台启动(windows系统不支持)
daemonize no

4)定义日志级别,默认值为notice,有如下4种取值:
    debug(记录大量日志信息,适用于开发、测试阶段)
    verbose(较多日志信息)
    notice(适量日志信息,使用于生产环境)
    warning(仅有部分重要、关键信息才会被记录)
loglevel notice

5)配置日志文件保持地址,默认打印在命令行终端的窗口上
    如果填写 "./redis.log" 就会在启动redis服务的终端所在目录下,用redis.log记录redis日志
logfile ""

eg)终端首先切断到log文件夹所在目录(一般就可以采用redis的安装目录,也可以自定义),再启动reids服务
logfile "./log/redis.log"

6)数据库个数,默认是16个,没特殊情况,不建议修改
databases 16

7)数据持久化
save 900 1  # 超过900秒有1个键值对操作,会自动调用save完成数据持久化
save 300 10  # 超过300秒有10个键值对操作,会自动调用save完成数据持久化
save 60 10000  # 超过60秒有10000个键值对操作,会自动调用save完成数据持久化

8)数据库持久化到硬盘失败,redis会立即停止接收用户数据,让用户知道redis持久化异常,避免数据灾难发生(重启redis即可),默认为yes,不能做修改
stop-writes-on-bgsave-error yes

9)消耗cpu来压缩数据进行持久化,数据量小,但会消耗cpu性能,根据实际情况可以做调整
rdbcompression yes

10)增持cpu 10%性能销毁来完成持久化数据的校验,可以取消掉
rdbchecksum yes

11)持久化存储的文件名称
dbfilename dump.rdb

12)持久化存储文件的路径,默认是启动服务的终端所在目录
dir ./

13)reids数据库密码
requirepass 密码

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

------------恢复内容结束------------

------------恢复内容结束------------

以上是关于redis基本使用的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp Robolution基本代码片段

如何从片段外部清除/重置地图?

JavaScript 代码片段

如何利用redis来进行分布式集群系统的限流设计

jedis连接redis

Android 使用两个不同的代码片段获取当前位置 NULL