当前位置: 首页 > 工具软件 > Redis TUI > 使用案例 >

redis数据库

杜俊楚
2023-12-01

####################################

---Redis

~ Redis是一个开源的可基于内存亦可持久化的日志型、
     key-value数据库      //非关系型数据库

~ Redis的存储分为内存存储、磁盘存储、和log文件三部分

~ 和Memcached相比,它支持存储的value类型相对更多,包括字符串(strings)、
     lists列表、sets、集合zsets(sotred set)和hashes表
~ Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在
    此基础上实现了master-slave(主从)同步

#######################################

    ---部署Redis

    端口号6379

    源码包编译

    tar zxf redis-3.0.6.tar.gz
    cd redis-3.0.6
    make && make install  //编译安装

    ./utils/install_server.sh  #初始化
    service redis_6379 start/stop/status   #启动服务
    或
    /etc/init.d/redis_6379 start/stop/  

    服务器程序 

    --redis-server

    客户端程序

    --redis-cli
    #cli --命令行操作界面   gui--图形操作界面 tui--文本操作界面

    主配置文件

    /etc/redis/6379.conf

    ###############################

    ---使用客户端软件快速测试服务器:

    redis-cli
    >set name 100   #name 变量名(key) 100 值(value)
    [ok]
    >get name
    "100"

    字符串操作
    >set first "hello word"  #first (key) hello word (value) 
    >get first
    "hello world"

    >getrange first 6 -1      #查看第6位及以后的所有  -1代表末尾最后一个,-2代表倒数第二 -5代表倒
                                            数第五
    >getrange first 6   10      #查看6-10位

    >setrange first 6 "redis"  #把 hello world 第6位及以后换成redis 从0开始 空格也算一位
    >get first
    "hello dedis"  

    >append first "AAA"  #向first(key)中追加
    >get first 
    "hello dedisAAA"

    >setbit mytest 0 1   #设置2进制的第0位为1 0001
    >setbit mytest 3 1   #设置第3位为1   1001

    >bitcount mytest     #统计mytest设置为1的有多少
    2

    >get num1 100      #+1
    >incr num1
    "101"

    >decr num1       #-1
    "100"

    >incrby num1 10    #+10
    >decrby num1 10 #-10

    >incrbyfloat num1  +0.3/-0.8      #+0.3 /-08

    >mset a 10 b "abc"
    >mget a b
    "10"
    "abc"

    ---哈希表(hashes)类型数据

    >hset site google "www.google.com"  # site --key google --field www.goo..--value
                               #一个key对应多个域,一个域对应一个value
    >hset site baidu "www.baidu.com"

    >hget site google
    >hget site google

    >hkeys site    #查看key中存在的field
    "google"
    "baidu"

    >hvals site   #查看key中的所有value
    "www.google.com"
    "www.baidu.com"

    >hgetall site  #返回field和value
    "google"
    "www.google.com"
    "baidu"
    "www.baidu.com"

    >hdel site google #删除google

    ---list列表
    >lpush mylist dmy zhf zzg nb  #一个key 多个value  
    >lrange mylis 0 -1  #呈现为从左向右写入 和写入顺序相反
    "nb"
    "zzg"
    "zhf"
    "dmy"
    >rpush mylist mm   #从右写入相当于写在末尾后面
    >lrange mm 0 -1
    "nb"
    "zzg"
    "zhf"
    "dmy"
    "mm"        
    >lset mylist 2 zz  #在第2个值后面写入zz 从0开始                                                                                                                                                                                                                                                                                                                                                        
    >lpop /rpop mylist    #删除表头/表尾
    >llen mylist     #key的长度
    >lindex mylist 1  #查看mylist第1个值 从0开始
    >lset mylist 3 aa  #将mylist中第3个值改为aa

    >keys *
    >keys 支持通配符

    >flushall  #清空所有数据
    >select 1  #选择第一个数据库 0-15 共16个库
    >move username 1  #把key 放到第一个数据库

    ###################################

    --配置master-slave(主从)同步

    主数据库在客户端写入数据后保存并把数据复制到从数据库中
    当客户端访问此数据时,可由从数据库提供数据。

    【master】
    修改配置文件
    /etc/redis/6379.conf
    requirepass redis123

    service redis_6379 stop
    service redis_6379 start   #启动失败 ,设置密码后 服务需要密码认证
    解决
    /etc/init.d/redis_6379
    $CLIEXEC -a redis123 -p $REDISPORT shutdown
    service redis_6379 start

    netstat -tlnp | grep redis

    配置密码后登录 redis-cli
    redis-cli -h 192.168.4.1 -a redis123

    【slave】

    修改配置文件

    /etc/redis/6379.conf
    slaveof 192.168.4.1 6379   #指定主服务器地址、端口号
    masterauth redis123 #告知密码

    redis-cli
    >keys *
    ...
    ...

    从服务器无法写入数据,只有主服务器可以。

转载于:https://blog.51cto.com/13402236/2050798

 类似资料: