zoukankan      html  css  js  c++  java
  • redis数据库操作

    redis是存储数据变化较快的并且不是总要的数据
    安装:
    wget http://download.redis.io/releases/redis-5.0.0.tar.gz
    tar -zxvf redis-5.0.0.tar.gz
    yum install gcc
    yum install gcc-c++
    make && make install
    cp src/redis-server /usr/bin/
    cp src/redis-cli /usr/bin/

    启动 cd redis-5.0.0
    redis-server redis.conf
    配置文件参数:
    daemonize yes

    关闭
    redis-cli shutdown


    13、设置密码
    因为这是给局域网内的很多人使用,所以设置一个访问密码很有必要。
    修改redis.conf文件配置 
    使用命令 :/ requirepass 快速查找到 # requirepass foobared 然后去掉注释,这个foobared改为自己的密码。然后wq保存。

    sudo service redis restart  这个时候尝试登录redis,发现可以登上,但是执行具体命令是提示操作不允许
    1. redis-cli -h 127.0.0.1 -p 6379  
    2. redis 127.0.0.1:6379>  
    3. redis 127.0.0.1:6379> keys *  
    4. (error) ERR operation not permitted  
    尝试用密码登录并执行具体的命令看到可以成功执行
    1. redis-cli -h 127.0.0.1 -p 6379 -a password
    2. redis 127.0.0.1:6379> keys *
    3. 1) "myset"  
    4. 2) "mysortset"  
    5. redis 127.0.0.1:6379> select 1  
    6. OK  

     

    bind 127.0.0.1 (192.168.126.8)#对外提供链接的地址
    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-cli -h 127.0.0.1 -p 6379

    切换用户
    127.0.0.1:6379> SELECT 1
    OK
    127.0.0.1:6379[1]>
    默认是0

    字符串
    添加:
    127.0.0.1:6379[1]> set name zxw
    OK
    查看key
    127.0.0.1:6379[1]> keys *
    1) "name"
    查看values
    127.0.0.1:6379[1]> get name
    "zxw"

    设置过期时间
    127.0.0.1:6379[1]> set name zxw ex 10
    OK
    127.0.0.1:6379[1]> get name
    "zxw"


    删除:
    127.0.0.1:6379> del name
    (integer) 1

     


    列表

    在列最上边添加元素:
    添加到第一位
    127.0.0.1:6379> lpush lan c++
    (integer) 5
    127.0.0.1:6379> lrange lan 0 -1
    1) "c++"
    2) "zxw"
    3) "jave"
    4) "python"
    5) "zhao"
    移除最上元素:
    127.0.0.1:6379> lpop lan
    "c++"


    查看列表中的元素:
    127.0.0.1:6379> lrange lan 0 -1 初始0 -1全局
    1) "java"
    2) "python"

     

    在列表最下添加元素:

    127.0.0.1:6379> rpush lan zxw
    (integer) 4
    127.0.0.1:6379> LRANGE lan 0 -1
    1) "c++"
    2) "java"
    3) "python"
    4) "zxw"

    删除最底那个
    127.0.0.1:6379> rpop lan
    “zxw"

    查看列表里几个元素
    127.0.0.1:6379> llen lan
    (integer) 4
    127.0.0.1:6379> lrange lan 0 -1
    1) "zxw"
    2) "jave"
    3) "python"
    4) "zhao"


    指定返回第几个元素:
    127.0.0.1:6379> lindex lan 0
    "zxw"
    127.0.0.1:6379> lindex lan 1
    "jave"
    127.0.0.1:6379> lindex lan 0
    "zxw"
    127.0.0.1:6379> lindex lan 1
    "jave"

    删除指定的元素几次:
    127.0.0.1:6379> lrange lan 0 -1
    4) "zxw"
    5) "zxw"
    6) "jave"
    7) "python"
    8) "zhao"
    127.0.0.1:6379> lrem lan 1 zxw
    (integer) 3
    127.0.0.1:6379> lrange lan 0 -1
    2) "zxw"
    3) "jave"
    4) "python"
    5) "zhao"


    集合
    添加元素去重:
    127.0.0.1:6379> sadd lan jave python c++ zxw zxw
    (integer) 4

    查看元素:
    127.0.0.1:6379> smembers lan
    1) "jave"
    2) "python"
    3) "zxw"
    4) "c++"

    移除元素:

    127.0.0.1:6379> srem lan jave
    (integer) 1

    查看集合中的元素个数:
    127.0.0.1:6379> scard lan
    (integer) 3
    127.0.0.1:6379> SMEMBERS lan
    1) "python"
    2) "zxw"
    3) "c++"


    获取多个集合的交集:

    127.0.0.1:6379> SMEMBERS lan
    1) "python"
    2) "c++"
    3) "zxw"
    127.0.0.1:6379> SMEMBERS lan2
    1) "jave"
    2) "python"
    127.0.0.1:6379> SINTER lan lan2
    1) "python"
    获取多个集合的并集:
    127.0.0.1:6379> SUNION lan lan2
    1) "jave"
    2) "python"
    3) "zxw"
    4) "c++"

    获取多个集合的差集:以前为基准
    127.0.0.1:6379> SDIFF lan lan2
    1) "zxw"
    2) "c++"

    哈希

    添加一个新值:
    127.0.0.1:6379> hset zxw high 175
    (integer) 1

    获取哈希中的field对应的值:
    127.0.0.1:6379> hget zxw high
    "175"


    删除:
    127.0.0.1:6379> hdel zxw high
    (integer) 1

    获取某个哈希中所有的key:values

    127.0.0.1:6379> hgetall zxw
    1) "gender"
    2) "nan"

    获取某个哈希中所有的key

    127.0.0.1:6379> HKEYS zxw
    1) "gender"
    2) "high"

    获取某个哈希中所有的values:
    127.0.0.1:6379> HVALS zxw
    1) "nan"
    2) "175"


    判断哈希中是否存在某个field:

    127.0.0.1:6379> HEXISTS zxw high
    (integer) 1

    获取哈希中总共的键值对:
    127.0.0.1:6379> HLEN zxw
    (integer) 2


    事物操作:Redis事务可以一次执行多个命令,事务具有以下特征:
    隔离操作:事务中的所有命令都会序列化、按顺序地执行,不会被其他命令打扰。
    原子操作:事务中的命令要么全部被执行,要么全部都不执行。
    开启一个事务:multi
    提交事务:exec
    回滚事务:discard

     

     

     

  • 相关阅读:
    Variant 数组
    socket c/s分佈式編程
    多線程幾個方法說明
    hash表的使用
    MIS系统权限控制的一个简便方法
    git 使用总结
    让 VAGRANT 启动并运行起来
    深入理解 Laravel 中 config 配置加载原理
    Vagrant入门
    php开发APP接口(总结一)
  • 原文地址:https://www.cnblogs.com/itzhao/p/11280309.html
Copyright © 2011-2022 走看看