redis常用操作及语句

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,825评论 4 377
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,887评论 2 308
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 112,425评论 0 255
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,801评论 0 224
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,252评论 3 299
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,089评论 1 226
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,216评论 2 322
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 31,005评论 0 215
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,747评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,883评论 2 255
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,354评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,694评论 3 265
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,406评论 3 246
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,222评论 0 9
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,996评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,242评论 2 287
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 36,017评论 2 281

推荐阅读更多精彩内容