Redis我爱编程

redis常用操作及语句

2016-06-12  本文已影响1642人  一缕白衣

nosql系列之redis

   特点:

       1)并发写入

       2)从海量数据查找某一条数据记录

       3)高扩展性和高可用性

   redis和mongodb的区别

       redis

           基于缓存,资格老,支持多种数据结构,消耗内存较多,支持数万QPS,支持持久化存储

       memcache

           速度快,不能备份,响应速度快,支持十几万的QPS,bug较少

       mongodb基于文件

           社区活跃,查询功能强大,更新快,支持索引文档类数据库,最接近关系式数据库,结构相对单一

   redis        --    通过键值存储数据

   安装

   make

   make    test        -- 如果报错,则安装tcl

   make    PERFIX=/usr/local/redis    install

   cp    /usr/src/redis-3.0.3/redis.conf    /usr/local/redis

   ./bin/redis-server    ./redis.conf        -- 开启redis服务

   vim    redis.conf

   daemonize    yes        --放在后台选项

   ./bin/redis-cli    -h    localhost    -p    6379

   bin/下的文件

   redis-check-aof    redis-check-dump        -- 日志文件

   redis-benchmark        -- 检测工具

   ./redis-benchmark    -n    100000    -c    60

   string字符串类型

   keys    *        --查看所有键值

   set    age    19        --设置键值的数据

   get    age            --查看键值的数据

   keys    age        --查看键值本身

   setnx    name1    zhangsan        --防覆盖新建键值

   setex    name2    30    Janni        --新建或修改临时键值,有效时间30s

   ttl    name2        --查看键值的有效期

   mset    a1    111    a2    222    a3    333        --设置多个键值

   mget    a1    a2    a3        --查看多个键值

   msetnx    a3    444    a4    555        --创建多个防覆盖机制键值

   setrange    a3    2    lisi        --替换,从第二个字符开始

   getset    a3    "xxx"        --查看原值并修改

   getrange    a3    0  5        --查看a3键值的0-5之间的字符

   incr    c1        --键值依次增加1

   incrby    c1    100        --键值依次增加100,值可自定义

   decr    c1        --键值依次减少1

   decrby    c1    100        --键值依次减少100,值可自定义

   strlen    b1        --查看键值的长度

   append    b1    lisi        --追加键值的数据

   del    b1        --删除键值

   hash类型

   hset    hash1    name1    hanhan        --创建第一组数据

                  键        字段           键值

   hget    hash1    name1        --查第一组的第一个字段

   hsetnx    hash1    name1    Janni        --防覆盖创建

   hmset    hash1    name1    name2        --创建多个字段

   hmget    hash1    name1    name2        --查看多个字段

   hlen    hash1            --查字段个数

   hgetall    hash1        --查指定键中的字段和值

   hkeys    hash1        --查指定键中的字段名称

   hvals    hash1        --查指定键中的数值

   hdel    hash1    name3        --删除指定键中的字段

   hincrby    hash1    id1    5        --hash1键中的id1字段每次增加5

   list双向列表

   1    2    3    4    5                   正数下标

 -5    -4    -3    -2    -1              负数下标

lpush    list1    1    2    3    4        --创建队列向左

rpush    list1    one    two    three        --创建队列向右

lrange    list1    0    -1            --查list1中所有的队列

linsert    list1    before    two    hi        --在list1列表中的two前面插入hi队列    (before | after)

lset    list1    1    “six”        --修改队列中元素的值

lrem    list1    -2    hi        --删除元素中重复的值,其中-2代表几个 ,并且是倒序的

ltrim    list1    0    3        --保留list1上以下标为主的0-3的队列

lpop    list2         --删左边第一个

rpop    list2        --删右边第一个

rpoplpush    list1    list2        --把list1的最后一个元素放到list2中

llen    list2    查有多少个队列

lindex    list2    1        --通过下标查看元素值

   set集合

   交集        差集        并集

sadd    set1    aa    bb    cc        --添加set集合

smembers    set1        --查看集合中所有的元素

srandmember    set1        --随机查看

spop    set1        --随机删除

srem    set1        --指定删除

scard    set1        --查看该集合有多少个元素

sismember    set1    bb        --查看bb是否属于set1集合的元素

sdiff    set1    set2        --查看set1和set2的差集

sdiffstore    set3    set1    set2        --查看set1和set2的差集,并写入到set3

sinter    set1    set2        --查看set1和set2的交集

sinterstore    set3    set1    set2        --查看set1和set2的交集,并写入到set3

sunion    set1    set2        --查看set1和set2的并集

sunionstore    set3    set1    set2        --查看set1和set2的交集,并写入到set3

   zset有序集合    sorted    set

zadd    zset1    11    aa    22    bb    33    cc        --创建有序集合

zrange    zset1    0  -1    withscores       --查看有序集合,withscores参数是查看有序集合的分数    从小到大的顺序

zrevrange    zset1    0  -1    withscores        --查看有序集合,从大到小的顺序

zrangebyscore    zset1    10    20        --查有序集合zset1中分数10-20之间的元素

zrem    zset1    aa        --删除有序集合中指定的值

zincrby    zset1    5    aa        --有序集合zset1中aa的值依次增加5,如不存在,则创建

zrank    zset1    aa        --通过元素名获取下标,从小到大的顺序

zrevrange    zset1    aa        --通过元素名称获取下标,从大到小的顺序

zcard    zset1        --查看zset1中有几个元素

zcount    zset1    10  20    --查看zset1中10-20之间的有多少个元素

zremrangeburank    zset1    1  2        --根据下标删除数据

zremrangebyscore    zset1    10    22        --根据分数删除数据

zinterstore    zset3    2    zset1    zset2        --取2个有序集合的交集,并保存到zset3

zunionstore    zset3    zset3    2    zset1    zset2        --取2个有序集合的并集,并保存到zert3

   全局命令

dbsize        --统计所有键值的数量

exists    aa        --查看某个键值是否存在

expire        设置生效时间

rename    d1    d2    --改键值的名称,d1改为d2

type    a1        --查a1键值的类型

info        --查数据库版本信息

select    2        --选择其它数据库    范围(0-15)

more    d2    1        --移动键值到某数据库

flushdb        --清空当前数据库

flushdball        清空所有数据库

   redis应用

启用密码:

   vim    /usr/local/redis/redis.conf

   requirepass    123456

关闭服务:

   pkill    redis

使用密码登陆:

   /usr/local/redis/bin/redis-server    /usr/local/redis/redis.conf        开启服务

   /usr/local/redis/bin/redis-cli    -h   localhost   -p   6379        登陆redis

数据库备份和还原

   备份:

   save    保存到dump.rdb文件

   cp -p  /usr/local/redis/dump.rdb  /root            把备份文件拷贝到/root下

   还原:

   cp -p /root/dump.rdb  /usr/local/redis

   设置备份文件的路径:

   vim    redis.conf

   dir    /usr/local/redis

设置主从

   cp    -r    redis    redis-slave

   修改主配置文件的参数,不要和主服务器的相同

   vim    redis-slave/redis.conf

   pidfile    /usr/local/redis-slave/redis.pid

   port    6380

   dir    /usr/local/redis-slave        --指定备份的目录

   slaveof    127.0.0.1    6379        --主服务器的IP地址和端口

   masterath    123456            --有密码则开启

原理:

(1)Slave服务器连接到Master服务器.

(2)Slave服务器发送SYCN命令.

(3)Master服务器备份数据库到.rdb文件.

(4)Master服务器把.rdb文件传输给Slave服务器.

(5)Slave服务器把.rdb文件数据导入到数据库中.

   开启从服务器的redis进程:

   /usr/local/redis-slave/bin/redis-server    /usr/local/redis/redis.conf

   登陆redis:

   /usr/local/redis-slave/bin/redis-cli    -h    localhost   -p    6380    -a    123456

上一篇下一篇

猜你喜欢

热点阅读