zoukankan      html  css  js  c++  java
  • Redis

    Redis是啥

    Redis是一个开源的、基于内存的数据结构存储器,可以用作数据库、缓存和消息中间件。

    CentOS 7 安装

    1. https://redis.io/download

    下载之后上传到服务器

    解压

    tar -zxvf redis-6.0.6.tar.gz

    解压之后出现redis-6.0.6文件夹,我改成了redis6,

    进入redis6:cd redis6,编译:make

    在进行make时,如果报错了,可以执行以下操作:

    1、安装gcc套装(如果是新系统gcc通常安装不全面)
    yum install cpp
    yum install binutils
    yum install glibc
    yum install glibc-kernheaders
    yum install glibc-common
    yum install glibc-devel
    yum install gcc
    yum install make
    2、升级gcc
    yum -y install centos-release-scl
    yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
    scl enable devtoolset-9 bash
    3.redis客户端测试
    redis-cli -p 6379

    启动redis服务端

    1. redis启动
      打开src,./redis-server

    2. redis后台启动
      打开src,./redis-server &

    1. 查看 redis 是否启动?

    打开src, redis-cli

    1. 关闭redis
      shutdown,之后

    基本操作

    字符串(string)、列表(lists)、集合(sets)、有序集合(sorts sets)、哈希表(hashs)

    1. String字符串

      • string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。
      • string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。
      • string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。

    插入一条数据:set age 22
    获取一条数据:get age
    在获取一条int类型的数据之前先加一:incr age------>23,操作的对象虽然为String格式但是可以转化为int类型

    获取旧值并更改为新值:

    1. List

    在Redis中list的底层实现是链表,所以在两边插入的效率比较高,随机读取的效率较低。
    list的常用操作有LPUSH,RPUSH,LRANGE等。

    • LPUSH:从左侧插入一条数据
    • RPUSH:从右侧插入一条数据
    • LRANGE:获取某一范围内的数据
    1. Set集合

    Redis中的集合是一种无序集合,集合中的元素没有先后顺序

    • 向集合中添加元素
    • 列出集合中的所有元素
    • 判断元素是否在列表中,有的话返回1,没有的话返回0
    • 新建一个新的集合,并把两个集合合并

    从上面的结果可以看到,合并只是输出两个合集的所有元素,而且重复的元素会被过滤掉。

    1. 有序集合(sorted sets)
      很多时候,我们都将redis中的有序集合叫做zsets,这是因为在redis中,有序集合相关的操作指令都是以z开头的,比如zrange、zadd、zrevrange、zrangebyscore等等
    • 新添加一条数据:
    • 列出集合中的所有数据,同时列出他的序号
    • 只列出所有数据
    1. Hash哈希
      Redis Hash是一个键值对集合
      Redis Hash是一个string类型的 field和value的映射表,hash特别适合存储对象
    • 建立哈希,并赋值

    • 列出哈希的所有信息

    • 更改哈希中的某一个值

      hset:更改一个值,hmset:更改一个或者多个值

    经测试,set key会覆盖之前hmset存入的值,而hmset不会覆盖set

    Redis的持久化

    1. RDB

    RDB,简而言之,就是在不同的时间点,将redis存储的数据生成快照并存储到磁盘等介质上;

    2. AOF

    AOF,则是换了一个角度来实现持久化,那就是将redis执行过的所有写指令记录下来,在下次redis重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复了。

    其实RDB和AOF两种方式也可以同时使用,在这种情况下,如果redis重启的话,则会优先采用AOF方式来进行数据恢复,这是因为AOF方式的数据恢复完整度更高。

    参考文章:https://blog.csdn.net/liqingtx/article/details/60330555

  • 相关阅读:
    stl 在 acm中的应用总结
    hdu_2089(数位dp)
    水dp第二天(背包有关)
    dp水一天
    poj_2195Going Home(最小费用最大流)
    poj_3281Dining(网络流+拆点)
    GSS4
    SPOJ GSS1_Can you answer these queries I(线段树区间合并)
    Ajax实现局部数据交互的一个简单实例
    对学习Ajax的知识总结
  • 原文地址:https://www.cnblogs.com/charlottepl/p/13500989.html
Copyright © 2011-2022 走看看