Redis入门

nosql

特点
  • 基于内存储存
  • 非关系型数据库
  • 适用于大规模数据
常见nosql框架
HBase
  • 由Java编写
  • 开源
  • 参考谷歌的bigtable建模
Redis
  • 使用C语言编写
  • 开源、支持网络、基于内存、可选持久性
  • 使用键值(key value)对储存数据库
Memcached
  • 用于加速动态 web 应用程序,减轻关系型数据库负载
  • 工作机制是在内存中开辟一块空间,然后建立一个 Hash 表,Memcached 自管理这些 Hash 表

......

nosql和sql的区别

Redis

简介

redis是一个开源的,内存中的数据结构存储系统,可以用作数据持久化、缓存和消息中间件,由C语言编写。

特点
  1. 数度快,读每秒11万次,写每秒8.1万次
  2. 支持持久化

      RDB(redis database):把内存中写入的数据按照配置策略,指定时间段内把数据保存磁盘文件上。

      AOF(append of file): 把执行命令保存到磁盘上日志文件中,当数据需要恢复时,再次读取日志文件,重新生成数据。

    3.支持事务(原子性操作)

    4.支持多语言,几乎支持现在流行的所有语言(编程语言)

安装redis

1、下载安装包

2、创建目录

mkdir /usr/redis
tar -xzvf /root/software/redis-5.0.5.tar.gz -C /usr/redis/ #解压压缩包

3、安装配置环境

由于redis是由C语言开发的,所以必须配置C的编译器

yum -y install gcc-c++

安装好后进入解压的文件夹中

make && make install

使用此安装方式会发现在usr/local/下多了一个bin目录 

进入目录运行命令

redis-server

出现这个界面即redis已经开始运行,但是此时只能前台运行,退出这个界面就会停止服务,非常不方便,所以我们要配置文件使其后台运行

 配置运行文件
vi redis.conf
  • 绑定的主机地址,默认只能本机访问,如果需要外网访问修改如下
  • bind 0.0.0.0
  • 保护模式,该模式控制外网是否可以连接redis服务,默认我们外网是无法访问的,如需外网连接改为no。
  • protected-mode no
  • 端口号,默认6379
  • port 6379
  • 当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能
  • timeout 0
  • 守护进程,默认是no即不以守护进程方式运行,改为yes
  • daemonize yes
  • 连接密码,如果配置了密码,客户端在连接时需要通过AUTH <password> 命令提供密码,默认关闭(先不设置这个密码
  • requirepass 123456
 进入数据库
redis-server redis.conif #后面带配置好的加载文件

Redis指令

基础
ping
ping

输出返回PONG

echo 
echo 111

输出返回"111"

quit

关闭服务器连接(与shutdown不同,不会关闭服务) 

quit
select

选择数据库

select x #x为数据库编号,默认为0-15之间
server相关
dbsize

直接返回当前数据库的键值数量

dbsize
shutdown

直接关闭服务

shutdown
flushdb

清空当前数据库

flushdb
flushall

清空全部数据库

flushall
keys相关
keys *

输出当前数据库所有键值

keys *
keys *a #搜索以a结尾的键值
keys a* #搜索以a开头的键值
keys a[bc] #搜索以a开头并且接着b或c的键值,也就是查找ac或ab两种
del

删除指定键值

del a #删除键值a
expire

设置键值的过期时间

expire a 5 #设置键值a在5秒后过期
move

移动键值到其他数据库中

move a 2 #把键值a移动到编号为2的数据库中
rename

重命名键值

rename a aa #把键值a改名为键值aa
ttl

获取键值有效时间

ttl a #获取键值a的过期时间
type

获取键值的存储类型

#创建两个不同的文件类型
set a 2
hset map k2 v2
#查询类型
type a #输出string
type map #输出hash
exists

判断一个键值是否存在

exists a #存在返回(integer) 1 不存在返回0

五种数据类型

string
命令
  • set: 单个设置字符串
  • get:单个获取字符串
  • mset:批量设置字符串
  • mget:批量获取字符串
  • incr:原子自增(针对整数内容的字符串)
  • decr:原子自减(针对整数内容的字符串)
  • setnx:键不存在的时候设置字符串,键已经存在时不能设置
  • set a 10 ex 20 nx :设置键值对a=10 过期时间 20s,当a不存在的时候可以设置成功
  • set a 10 px 2000 xx: 设置键值对a=10 过期时间2000ms,当a已经存在的时候才能设置成功
     
hashs

也就是在key的基础上再加一层

一个map下有多个key

命令
  • hset: 设置单个键值对
  • hget 获取单个键对应的值
  • hmset: 批量设置键值对
  • hmget:批量获取键值对
  • hgetall:获取某个键的所有键值对数据
  • hdel:删除某个键值对数据
  • hkeys:获取所有的键
  • hvals:获取所有的值
  • hlen:获取键值对的个数
  • del 键:删除redis键数据
list

就像一个横着的队列筒,先进的在右边,可以选择左弹出或者右弹出

命令

  • lpush: 从左边添加数据
  • rpush:从右边添加数据
  • lpop:从左边弹出数据
  • rpop:从右边弹出数据
  • llen:返回列表长度
  • lindex:返回列表中指定索引位置的数据 list.get(3)。索引为-1,表示获取最后一个值。
sets

这是一个集合类型,不储存重复元素,没有顺序之分

命令
  • sadd: 以特定键添加一组set数据
  • srem:删除特定数据
  • smembers:返回set中得所有元素
  • sismember:测试set中是否存在某个值
  • scard:返回set中值得个数
  • spop:随机弹出(删除)一个值
  • srandmember:随机返回set中的值
  • sinter: 求两个set的交集
  • sinterstore:将两个set交集的结果,存储到另外一个set中
sorted sets

也是一个集合,没有重复元素,数据有权重排序

命令

  • zadd :添加一组set数据。
  • zrem:删除一个数据
  • zcard:统计元素个数
  • zcount:统计某个范围(分数)得元素个数
  • zrangebyscore:返回指定分数范围得元素内容
  • zscore 返回指定键的分数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值