Redis 简单介绍(包含相关命令)

Redis

(本测试环境为:Linux)
(测试服务器为虚拟机Vm)

1.简介

Redis:开源的内存中数据结构存储系统。

应用:数据库、缓存和消息中间件。

支持数据结构:字符串(strings) , 散列(hashes) , 列表(lists) ,

​ 集合(sets) , 有序集合(sorted sets)

内置实现:磁盘持久化(persistence),

​ 并通过 Redis 哨兵(Sentinel) 和自动分区(Cluster)

​ 提供高可用性(high availability)

支持语言:支持市面上大部分语言(C/Java/Python/…)

支持数据类型:string 、 hash 、 list 、 set 、 sorted set

2.安装

下载:http://redis.io/

链接:https://pan.baidu.com/s/1gpbztr03yDKNVF5ss2U_Eg
提取码:fwn7

上传至服务器

tar zxvf redis-5.0.3.tar.gz  				解压
yum -y install gcc-c++ autoconf automake  安装依赖

预编译

cd redis-5.0.3/ 切换到解压目录
make			实现预编译 

安装

mkdir -p /usr/local/redis	创建安装目录

不使用:make install(make install默认安装到/usr/local/bin目录下)
使用:如果需要指定安装路径,需要添加PREFIX参数(make PREFIX=/usr/local/redis/ install)

查看

安装成功后 输入 ll (查看目录文件) 存在下列文件安装成功
Redis-cli :客户端
Redis-server :服务器端

启动

安装的默认目标路径:/usr/local/redis/bin

./redis-server		启动

默认为前台启动,修改为后台启动

复制redis.conf至安装路径下

cp redis.conf /usr/local/redis/bin/

修改安装路径下的redis.conf,将 daemonize 修改为yes

daemonize yes

启动时,指定配置文件路径即可

./redis-server  ./redis.conf

通过windows 客户端访问

下载:

链接:https://pan.baidu.com/s/1IwGVykPU8QVzcaxmJl_FDA
提取码:np9o

首次登录会失败

Name:root

Host:主机ip

Port:6379

修改配置文件redis.conf

  • 注释掉 bind 127.0.0.1 可以使所有的ip访问redis,若是想指定多个ip访问,但并不是全部的ip访问,可以bind设置

    #bind 127.0.0.1
    
  • 关闭保护模式,修改为no

    protected-mode no
    
  • 添加访问认证

    requriepass root
    
  • 查看进程

    ps -ef | grep redis
    
  • 修改后kill -9 XXXX杀死redis进程,重启redis

    kill -9 进程编号
    
  • 再次建立连接 -> 成功

  • 可以修改逻辑数据库数量

    databases xx
    

3.关系型数据库与非关系型数据库

3.1关系型数据库

采用关系模型来组织数据的数据库,关系模型就是二维表格模型。

优点

  • 容易理解
  • 使用方便,通用的sql语言
  • 易于维护,丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大降低了数据冗余和数据不一致的概率

缺点

  • 磁盘I/O是并发的瓶颈
  • 海量数据查询效率低
  • 横向扩展困难,无法简单的通过添加硬件和服务节点来扩展性能和负载能力,当需要对数据库进行升级和扩展时,需要停机维护和数据迁移
  • 多表的关联查询以及复杂的数据分析类型的复杂sql查询,性能欠佳。因为要保证acid,必须按照三范式设计。

数据库

Orcale,Sql Server,MySql,DB2

3.2非关系型数据库

键值对存储,结构不固定。

优点

  • 根据需要添加字段,不需要多表联查。仅需id取出对应的value

  • 适用于SNS(社会化网络服务软件。比如facebook,微博)

  • 严格上讲不是一种数据库,而是一种数据结构化存储方法的集合

缺点

  • 只适合存储一些较为简单的数据

  • 不合适复杂查询的数据

  • 不合适持久存储海量数据

数据库

K-V:Redis,Memcache

文档:MongoDB

搜索:Elasticsearch,Solr

可扩展性分布式:HBase

4.Redis-cli操作Redis

4.1 Redis-cli连接Redis

-h :用于指定ip 
-p :用于指定端口
-a :用于指定认证密码

./redis-cli -p 6379 -a root

PING命令返回PONG

PING

指定database

select db

4.2 Redis-cli操作Redis

操作String
set :添加一条String类型数据
get :获取一条String类型数据
mset :添加多条String类型数据
mget :获取多条String类型数据
操作hash
hset :添加一条hash类型数据
hget :获取一条hash类型数据
hmset :添加多条hash类型数据
hmget :获取多条hash类型数据
hgetAll :获取指定所有hash类型数据
hdel :删除指定hash类型数据(一条或多条)
操作list
lpush :左添加(头)list类型数据
rpush :右添加(尾)类型数据
lrange : 获取list类型数据start起始下标 end结束下标 包含关系
llen :获取条数
lrem :删除列表中几个指定list类型数据
操作set
sadd :添加set类型数据
smembers :获取set类型数据
scard :获取条数
srem :删除数据
操作sorted set

sorted set是通过分数值来进行排序的,分数值越大,越靠后。

zadd :添加sorted set类型数据
zrange :获取sorted set类型数据
zcard :获取条数
zrem :删除数据

zadd需要将Float或者Double类型分数值参数,放置在值参数之前

Redis中以层级关系、目录形式存储数据
mset user:01 待存储层级内容(data)  设置层级关系存储
mget user:01 查看层级存储内容	  
设置key的失效时间
EXPlRE <key> <ttl> :用于将键 key 的生存时间设置为 ttl 秒。
PEXPIRE <key> <ttl> :用于将键 key 的生存时间设置为 ttl 毫秒。
EXPIREAT <key> < timestamp> :用于将键 key 的过期时间设置为 timestamp 所指定的秒数时间
戳。
PEXPIREAT <key> < timestamp > :用于将键 key 的过期时间设置为 timestamp 所指定的毫秒数时
间戳。
TTL :获取的值为-1说明此 key 没有设置有效期,当值为-2时证明过了有效期。
第一个参数: key
第二个参数: value
第三个参数: NX 是不存在时才set, XX 是存在时才set
第四个参数: EX 是秒, PX 是毫秒
删除
del :用于删除数据(通用,适用于所有数据类型)

hdel :用于删除hash类型数据

tips:命令为java中方法名,参数:去除括号,引号,将逗号变空格即可

zadd需要将Float或者Double类型参数,放置在值参数之前

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值