数据库

作者: Cyj___ | 来源:发表于2018-09-04 08:48 被阅读0次

    redis 的读写效率很高
    redis:数据库(key:value) 键值存储
    redis : 是非关系型数据库,是一个基于key - values(键-值)的存储,
    redis 存储的都是键和值的类型(存的是一个字典的对象)
    数据存储在缓存中,读取效率高,
    打开百度搜素 redis ---> 中文版
    redis 安装
    1.下载:打开redis官方网站,推荐下载稳定版本(stable)
    2.解压
    3.进入到解压的文件夹目录
    生成: sudo make
    测试: sudo make test
    将redis的命令安装到指定的目录: sudo make install
    1.启动:进入到redis 的文件夹下 ,执行 : redis-server redis.conf
    2.启动:(1.) redis-server (2.) redis-cli
    退出redis ctil + c,exit,sudo service redis stop
    (1.)关于 redis 的字符串操作(二进制数据,最大限制512MB)
    设置键值: set key(键) values(值) 例如: set name huahua
    查看键值: get key(键), 获取:根据键获取值,如果不存在此键则返回nil
    如果要显示中文再开一个终端输入:redis-cli --raw ----> get name
    设置过0期时间: setex key seconds(秒数) values(值,在有效时间内,可以是任意) 例如:setex name 10 huahua
    替换: setrange key(键) offset(偏移量,从哪个位置开始替换) newvalues
    例如: setrange name 2 kkk
    判断key是否存在,不存在则创建: setnx key(键) value(值) 例如:setne name xigua
    设置多个键值: mset key1 value1 key2 value2 ... 例如:mset name huahua age 17 book pytho
    根据多个键获取多个值 : mget key1 key2 ... 例如:mget name age book
    追加值(在末尾追加): append key value 例如:append name nihao
    删除: del key
    查看字符串的长度:strlen key
    (2.)values(值)值得操作
    例如:set int 10
    在10的基础上减一个 decr int
    (3.)键的操作
    查看所有键:keys *
    查看名称中包含a的键:keys 'a*' (正则,查看我们想要的key)
    判断键是否存在 如果存在返回1,不存在返回0 :exists key1
    随机返回一个key(从当前数据库中随机返回一个 key) : randomkey
    查看键对应的value的类型 : type key
    删除键及对应的值:del key1 key2 ...
    给一个kay设置过期时间,以秒为单位(如果没有指定过期时间则⼀直存在,直到使⽤DEL移除):expire key seconds
    查看有效时间,以秒为单位:ttl key (查看过期时间)
    查看键'bb'的有效时间:ttl bb
    给一个key重新命名:rename key newkey
    删除key:del key
    (4.)hash类型
    hash⽤于存储对象,对象的结构为属性、值 值的类型为string
    field(域,相当于字典里面的key键)
    设置单个属性: hset key field value
    获取⼀个属性的值:hget key field (获取域下面的值)
    设置多个键和属性: hmset key field values fiels valuse....
    获取多个属性的值: hmget key field field..... (获取域下面的多个值)
    删除整个hash键及值,使⽤del命令 删除属性,属性对应的值会被⼀起删除:hdel key field field field .....
    获取所有的域: hkeys key
    获取所有的值: hvals key
    获取所有域和值: hgetall key
    获取键的长度:hlen key
    给hash数据类型中的域的数字的值增加指定的值(处理的是数字类型):hincrby key fiels 数字
    判断键下是否存在某个域:hexists key field
    查看域对应值的长度:hstrlen key field
    (5.)list数据类型
    从左面开始插入(先插的在后面):lpush key valuse values....
    从右面开始插入(先插的在前面):rpush key valuse values....
    查看数据(队列)所有的值:lrange key start(起始位置,从0开始) end(结束-1) 例如: lrange lkey 0 -1
    根据索引查找(取值):lindex key index
    重新赋值:lset key index value
    指定位置插入值:linsert key before|after value(给定一个值作为参照位置) newvalue
    从左面取出,取出后即删除:lpop key
    从右面取出,取出后即删除:rpop key
    查看队列的长度:llen key
    截取:ltrim key start stop 例如:ltrim key 2 5 ---->5 4 3 2
    阻塞时间,(为0则一直阻塞,知道key对应的list有值,不为0,在设置的时间内,即使取不到值,也结束):brpop key key1 second
    阻塞时间(同上):blpop
    brpoplpush key key2 timeout (丛key右边取出值,丛左面取的值放在key里面)

    redis的发布与订阅
    订阅一个频道:subscribe channel(频道名称) ...
    发布消息:publish channel(频道) message(消息)
    取消订阅:unsubscribe channel(频道名称)
    事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。
    事物的特性:原子性,一致性,隔离性,持久性
    开启一个事务:multi
    提交一个事务:exec
    取消事务:discard
    监听事务:watch
    取消监听:unwatch
    备份:save 使用这个命令之后,会保存一个dump.rdb
    主从备份(一主一从,一主多从):
    1).配置要有一个主节点 :进入redis.conf 修改bind 为主节ip
    保存退出,从新开启redis服务
    启动redis-cli 链接主节点(redis服务)
    2).配置从节点:
    进入redis.conf 修改bind 为主机ip
    可以修改端口号
    设置主节点信息(282行)
    保存退出,重新开启redis服务
    启动redis-cli -h 从节点的ip -p 从节点的port 连接从节点(redis服务)可以实现主从备份
    安全:
    查看密码:config get requirepass
    设置:congig set requirepass ‘密码’
    认证:auth 密码
    取消密码:congig set requirepass ''

    相关文章

      网友评论

          本文标题:数据库

          本文链接:https://www.haomeiwen.com/subject/uxgwwftx.html