• 非关系型数据库---Redis


    • 开源(BSD协议)使用C语言编写,基于内存存储,支持持久化,高性能key-value的NoSQL数据库
    • 支持数据结构类型丰富,字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sorted sets与范围查询,bitmaps,hyperloglogs和地理空间(geospatial)索引半径查询。
    • 支持丰富的主流语言的客户端,C ,C++ ,python,Erlang, C# ,R,java,PHP,Go等
    • 用途:缓存,数据库,消息中间件
    • 官方网站:https://redis.io/


    Redis-5.0.0

    Redis 安装

    第一步:下载安装包并解压

    wget http://download.redis.io/releases/redis-5.0.0.tar.gz
    
    tar -zxvf redis-5.0.0.tar.gz
    

    第二步:下载编译安装的依赖gcc gcc-c++

    yum install gcc gcc-c++ -y
    

    第三步:编译安装

    cd redis-5.0.0 
    make
    cp src/redis-server /usr/bin/
    cp src/redis-cli /usr/bin/
    

    任意路径下使用命令

    cp src/redis-server /usr/bin/ 
    cp src/redis-cli /usr/bin/
    

    redis配置文件参数:

    bind 127.0.0.1					#对外提供链接的地址
    port 6379					#默认端口号
    daemonize no					#守护进程(如果是yes后台运行)
    databases 16					#(redis数据库用0,1,2,3....代表)
    save 900 1					#每900秒有1次增删改操作就同步到磁盘当中
    dbfilename dump.rdb				#rdb备份方式的文件名字(默认开启)
    dir ./						#备份文件存放位置
    appendonly no					#aof备份是否开启(默认不开启)
    appendfilename "appendonly.aof"			#aof备份文件名称
    appendfsync everysec				#aof同步机制,每秒同步到磁盘当中
    

    启动redis

    第一步:修改配置文件(守护进程,后台运行释放终端)

    ╭─root@localhost.localdomain ~/redis-5.0.0  
    ╰─➤  vim redis.conf 
    ...
    daemonize yes
    ...
    

    第二步:启动命令:

    ╭─root@localhost.localdomain ~/redis-5.0.0  
    ╰─➤ redis-server redis.conf
    

    第三步:连接redis-server

    redis-cli -p 6379 -h 127.0.0.1
    

    简单操作

    切换数据库:

    select 2
    

    字符串

    作用 内容 实例
    添加: set key value set username balabala
    删除: del key del username
    设置过期时间 set key value EX timeout setex key timeout value
    查看过期时间 ttl key ttl username
    查看当前redis所有的key keys *

    列表

    作用 内容
    在列表左边添加元素: lpush key value
    在列表右边添加元素: rpush key value
    查看列表中的元素: lrange key start stop
    移除并返回列表key的头元素: lpop key
    移除并返回列表的尾元素: rpop key
    指定返回第几个元素: lindex key index
    获取列表中的元素个数: llen key
    删除指定的元素: lrem key count value

    集合

    作用 内容 实例
    添加元素: sadd set value1 value2.... sadd team xiaotuo datuo
    查看元素: smembeers set smembers team
    移除元素: srem set member... srem team xiaotuo datuo
    查看集合中的元素个数: scard set scard team1
    获取多个集合的交集: sinter set1 set2 sinter team1 team2
    获取多个集合的并集: sunion set1 set2 sunion team1 team2
    获取多个集合的差集: sdiff set1 set2 sdiff team1 team2

    哈希

    作用 内容 实例
    添加一个新值: hset key field value hset website baidu baidu.com
    获取哈希中的field对应的值: hget key field hget website baidu
    删除field中的某个field: hdel key field hdel website baidu
    获取某个哈希中所有的field和value: hgetall key hgetall website
    获取某个哈希中所有的field: hkeys key hkeys website
    获取某个哈希中所有的值: hvals key hvals website
    判断哈希中是否存在某个field: hexists key field hexists website baidu
    获取哈希中总共的键值对: hlen field hlen website

    事物操作:

    Redis事务可以一次执行多个命令,事务具有以下特征:

    事务 内容
    隔离操作 事务中的所有命令都会序列化、按顺序地执行,不会被其他命令打扰。
    原子操作 事务中的命令要么全部被执行,要么全部都不执行。
    开启一个事务 multi
    提交事务 exec
    回滚事务 discard

  • 相关阅读:
    函数式 js 接口实现原理,以及 lodash/fp 模块
    谈谈混合 App Web 资源的打包与增量更新
    如何实现 javascript “同步”调用 app 代码
    如何发布带静态资源的库——android 篇
    [老文章搬家] 关于屏蔽优酷视频广告的一个方法
    [老文章搬家] 关于 Huffman 编码
    [老文章搬家] 插件化软件设计的头疼问题以及可能的解决思路
    [老文章搬家] [翻译] 深入解析win32 crt 调试堆
    Qt 5.0+ 中 connect 新语法与重载函数不兼容问题的解决方法,以及个人看法
    武佩奇 DJango博客地址
  • 原文地址:https://www.cnblogs.com/du-z/p/11179413.html
Copyright © 2020-2023  润新知