redis数据库使用01、安装配置 windows 和 redis所有数据类型的基本使用

1、关系型数据库 非关系型数据库

--关系型数据库:
--非关系型数据库:nosql  ==  not only lqs
    --举例:redis || mongodb || hbase hadoop || cassandra hadoop
    --没有通用 api 和 语法,每一种非关系型数据库都有自己擅长的场景
    --不支持sql语句
    --基本形式 k-v 

--关系型和非关系型的区别:
    --关系型数据库支持非常复杂的数据关系,非关系型使用的是 kv 形式所以关系清晰明了
    --关系型数据库支持事务[数据一致性],非关系型不支持
    --两者取长补短,优势互补

2、redis的认识,非常重要

--redis 基于C语言[效率高] 支持网络[可搭建集群] 可内存也可持久化 key/value形式 有多种语言的api可供调用

--redis 及其他非关系型数据库 使用特点:
    --数据可持久化,重新启动后可从磁盘加载至内存
    --redis不仅支持 key-value 格式数据,还支持 set zset hash list 等数据格式的存储
    --支持数据备份,即master-slave形式的备份

--redis优势:
    --性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
    --丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
    --原子 – Redis的所有操作都是原子性的。
    --丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

--redis应用场景:
    --用来做缓存(ehcache/memcached)——redis的所有数据是放在内存中的(内存数据库)
    --可以在某些特定应用场景下替代传统数据库——比如社交类的应用
    --在一些大型系统中,巧妙地实现一些特定的功能:session共享、购物车
    --只要你有丰富的想象力,redis可以用在可以给你无限的惊喜…….

3、redis的安装

--windows 安装:
    --Redis-x64-3.2.100.msi 
    --https://pan.baidu.com/s/18gVEv7g1F0BuS6n0_5uJCg#list/path=%2F  链接
    --ik18 密码

    --直接安装即可,记得改变安装路径、设置path、设置memory limit

--redis是:客户端 服务器模式

--最基本启动:有后台直接展示出来

    --redis-server启动
        --redis-server:直接输入该命令使用的是默认conf文件,也就是安装目录中的redis.windows.conf
        --redis-server  redis.windows.conf:这个文件名可以换到任何一个目录中无所谓

    --redis-cli:输入即可

--无后台启动:
    --redis-server --service-install redis.windows.conf --loglevel verbose  // 安装服务器
    [报错]:[5364] 19 Aug 22:50:26.865 # HandleServiceCommands: system error caught. error code=1073, message = CreateService failed: unknown error  // 表示需要先卸载再安装
    --redis-server --service-uninstall  // 卸载服务
    --redis-server --service-start    // 启动服务
    --redis-server --service-stop    // 停止服务
        

--windows下根据端口号查询进程,杀死进程
    --根据启动的端口查询服务:netstat -ano|findstr 6379
    --根据进程号杀死服务:taskkill /pid 193548 /f

--linux下查看redis 并杀死redis
    --ps aux | grep redis 查看redis服务器进程
    --sudo kill -9 pid 杀死redis服务器
    --sudo redis-server /etc/redis/redis.conf 指定加载的配置文件

--redis 清屏:ctrl + l

3、基本进入指令 和 配置

--redis-cli -h 10.29.11.235 -p 6379 -a 密码

--配置:redis.windows.conf
    --deamonize[守护进程]:windows下不支持,Linux中如果设置为yes,服务器运行日志会输出到一个文件中,文件默认地址为 /var/run/redis.pid
    --pidfile:仍然是windows不生效,Linux下表示运行日志后台输出对象
    --port 6379  默认为6379端口号
    --bind 127.0.0.1 默认为 localhost 
        --示例1:bind 127.0.0.1 10.1.1.171 专门在后面加允许访问的数据库
        --示例2:bind 0.0.0.0 允许所有ip
    --logfile "redis.log" 配置日志文件 不同于pidfile,这里才是真正的日志
    --databases 16 // 默认redis 16个数据库
    --save 900 1
      save 300 10
      save 60 10000 // 这三个和持久化有关
    --dbfilename dump.rdb // 持久化相关,内存数据写到磁盘的时候,默认使用该数据文件
    --dir ./
    --# slaveof <masterip> <masterport> // 默认是注释掉的,设置主从的配置
    
    --配置参考博客:随用随看
        https://blog.csdn.net/ljphilp/article/details/52934933

4、客户端和服务端指令:select

--选择数据库:
    --redis默认使用16个数据库,编号0~15,默认第一个
        --select:选择数据库 select 10 选择第11个数据库
        --至于怎么查看是哪一号数据库:如下所示,非默认数据库自带标号
            127.0.0.1:6379> select 0
            OK
            127.0.0.1:6379> select 1
            OK
            127.0.0.1:6379[1]>

5、数据结构

--五种数据结构都是 key value,不同数据结构key不同,
--数据结构:
    --字符串string
        --最基础使用:
            --增:set name itcast  // 增加name,值为itcast
            --删: del name  // 删除name
            --改: set name heiticast  // 更新name值为 heiticast
            --查: get name  // 获取键为 name的值 
        --Sting 过期时间:
            --有效期String:setex name_lala nimazhale
            --查看键的有效期剩余时间:ttl name_lala  // 过期最终值为-2,对于永久有效的ttl值为-1
            --获取 键值:get name_lala  // 过期的话值为nil     
        --一次设置多组键值对
            --多组设置:mset name01 liming name02 lizhuo name03 liweishu
            --多组获取:mget name01 name02 name03
        --追加 append:
            --set name itcast
            --append name lalalalal
            --get name
  
        --String:应用场景:
            --图形验证码[captcha]的那个 字符串
            --token鉴权
            --像这种简单的缓存数据

    --对 key的操作: 一般操作key的方式具有通用性
        --get key  // 获取键值为 key的value
        --del key  // 删除键值为 key的键值对
        --keys * 获取所有键
        --keys name0*  获取以name0开头的键值
        --exists lala  判断 lala的键存不存在,不存在为0,存在为1
        --type name  判断 键为name的值的类型
        --expire name 100  设置键为name的值的过期时间为100

    --哈希hash
        --有一个汇总的 key,下面包含各种单独的键值 k-v
        --所有和hash有关的命令,都以h开头
        --基础使用:
            --hset 汇总的keyall key01 value01 key02 value02
            --hget 汇总的key key01
        --多值设置:
            --hmset:hmset person name liming age 25 school wuhandaxue
                // hset hmset 既可以新增也可以更改hash值
            --hmget:hget person name age school
            --hgetall:hgetall person  // 当忘记一个汇总key下的独立key值到底有哪些时可以使用该命令
            --hkeys:获取汇总key下所有key值  hkeys person
            --hvals:获取汇总key下所有value值  hvals person
            --hdel:hdel是删除key下的某一个具体的field // hdel person name
            --del:del 就是整个hash干掉 // del person
        --hash使用场景:
            --放在购物车中待支付的商品,超过时间支付失败

    --列表list:分为左边插入 和 右边插入
        --lpush:从一个一维数组左边插入  lpush  list value01 value01 value02
        --lrange: 查看列表元素  lrange list 0 -1 // 获取所有元素
                               lrange list 0 0  // 获取第一个元素
        --rpush: 从一个一维数组右边插入  rpush  list  value04 value05 value06
        --lrem: 删除,原则比较特殊
            --lrem key count value  /
            --count > 0: 从头往尾移count个值为value的元素
            --count < 0: 从尾往头移除count个值为value的元素
            --count = 0: 移除所有值为value的元素
        --lset: 设置 lset list01 0 gengxin  设置list01 第一个元素值为 gengxin
                     lset list01 -1 lala  设置list01 最后一个元素值为 lala
        --linsert: linsert list01 before|after lisi value 在lisi之前或者之后插入一个值

    --集合set
        --⽆序集合  ||  元素为string类型  ||  元素具有唯⼀性,不重复
        --说明:对于集合没有修改操作
        --sadd: 设置liming set集合 sadd liming liming lala clclc
        --smembers:获取集合liming中成员  smembers liming
        --srem: 删除集合元素  srem liming lala

    --有序集合zset
        --sorted set,有序集合
        --元素为string类型
        --元素具有唯⼀性,不重复
        --每个元素都会关联⼀个double类型的score,表示权重,通过权重将元素从⼩到⼤排序
        --说明:没有修改操作
        --基础操作:
            --zadd:增加zset集合 zadd key score1 member1 score2 member2 ...
                // zadd set01 200 liming 300 mingli 190 minlig 10 limign
            --zrange:查询zset集合  zrange set01 0 -1    zrange set01 0 0
            --zrangebyscore:zrangebyscore key min max  // 根据分数查询
                // zrangebyscore set01 0 900  查询 0 900 之间的键
            --zscore:zscore key member  // 返回某一个键的score值
                // zscore set01 limign
            --zrem:zrem key member1 member2 ...  // 删除key中成员
                // zrem set01 liming
            --zremrangebyscore:zremrangebyscore key min max   // 删除权重分数在min max之间的值
                // zremrangebyscore set01 0 900

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值