资讯专栏INFORMATION COLUMN

redis 学习笔记

dreamans / 392人阅读

摘要:一搭建下载安装,参考官方启动客户端关闭修改配置后台运行添加密码二数据类型,常用操作命令类型如果存在,返回,不设置不更新。

一 搭建

1 下载安装,参考官方
    $ wget http://download.redis.io/releases/redis-3.2.1.tar.gz
    $ tar xzf redis-3.2.1.tar.gz
    $ cd redis-3.2.1
    $ make
2 启动redis
    $ redis-server /etc/redis/redis.conf
3 客户端
    $ redis-cli    (redis-cli -a password)
    $ ping
4 关闭redis
    pkill redis
5 修改配置
    daemonize yes        后台运行
    requirepass pass!! 添加密码
    ...

二 数据类型,常用操作命令

1 string类型
    set name hufeng
    get name
    setnx name hufeng0(如果name存在,返回0,不设置不更新。通过它代替数据库锁定),(nx = not exist)
    setex faceColor 10 red    (指定键值有效期)
    setrange name 2 xiaoxin (从第2个字符替换字符串,不一定全覆盖,看哪个长度长)
    mset key1 val1 key2 val2 (一次设置多个key)
    msetnx key1 val1 key2 val2  (如果有一个存在,就不成功)
    getset name 100 (获取旧值,设置新值)
    getrange name 0 5 (获取0到5的子串)
    mget key1 key2 (批量返回)
    incr key1 (递增1)
    incrby  key1 10 (递增10,key1不存在,默认为0,+加 -减)
    decr key1 (递减)
    decrby key1 10 (递减10,+减,-加)
    append name 100 (末尾追加字符串)
    strlen name (字符串长度)

2 hash类型
    hset user:1 name hufeng
    hset user:1 phone 18610256505
    hget user:1 name
    hsetnx user:1 name zhangsan(存在的话,设置失败)
    hmset user:2 name hufeng phone 18610256505
    hmget user:2 name phone
    hincrby user:2 phone 1(递增)
    hexists user:2 phone (检测字段是否存在)
    hlen user:2 (返回键数量)
    hdel user:2 phone(删除hash里指定field)
    hkeys user:2 (返回hash所有键名)
    hvals user:2 (返回hash所有值)
    hgetall user:2 (获取所有key val)

3 list链表类型
    lpush mylist 1 (从头部压入一个元素,先进后出)
    lpush mylist 2
    lrange mylist 0 -1(代表从头取到尾)
    rpush list 1 (从尾部压入一个元素,先进先出)
    linsert list before 2 3 (在指定值前面插入一个元素)
    lset list 0 a (设置list中,指定下标的元素替换掉)
    lrem list 2 hello (从list中删除 2个与hello同值的元素,如果就1个hello就全部删除)
    ltrim list 1 2 (保留下标1到2,删除其他的)
    lpop list (从list头部删除元素)
    rpop list (从list尾部删除元素)
    rpoplpush list0 list1 (从list0尾部删除元素并压入到list1头部)
    lindex list 0 (获取list中下标为0的值)
    llen list (返回list中有几个元素)

4  set 无序集合类型
    sadd set ab (添加元素不能添加相同元素)
    smembers set (查看set里所有元素)
    srem set ab (删除set中元素)
    spop set (随机删除一个元素)
    sdiff set1 set2 (两个集合的差集,--》set1比set2多了什么)
    sdiffstore set3 set1 set2 (set1与set2的差集,存储到set3中)
    sinter set1 set2(两个集合的交集)
    sinterstore set3 set1 set2 (set1与set2的交集,存储到set3中)
    sunion set1 set2 (并集)
    sunion set3 set1 set2(set1与set2的并集,存储到set3中)
    smove set1 set2 ab (将set1中ab移动到set2中)
    scard set1 (查看set1中元素个数)
    simermber set1 ab (判断ab是否在set1集合当中)
    srandmember set1 (从set1中随机返回一个元素,不删除)

5    zset有序集合类型
    zadd set1 1 "one" (添加元素,并指定顺序)
    zrange set1 0 -1 withscores(获取索引0到-1的数据-》默认从小到大排列,withscores显示顺序号)
    zrevrange set1 0 -1 withscores(获取索引0到-1的数据-》默认从大到小排列,withscores显示顺序号)
    zrangebyscore set1 2 4 withscores (获取score 2到4的数据)
    zrem set1 one (删除set1中元素)
    zincrby set1 2 one (one的顺序号加2)
    zrank set1 one (返回set1中one的索引值-》默认从小到大排列,不是scores)
    zrevrank set1 one (返回set1中one的索引值-》默认从大到小排列,不是scores)
    zcount set1 2 5 (返回score 2到5的数量)
    zcard set1 (返回set1中元素个数)
    zremrangebyrank set1 1 2 (删除set1中索引1到2的元素)
    zremrangebyscore set 1 2 (删除set1中score 1到2的元素)

三 redis常用命令

1 键值相关命令
    keys s* (所有s开头键,*匹配)
    exists age (确认key是否存在)
    del age (删除age键)
    expire age 10 (设置age过期时间 秒)
    ttl age (查看还剩多长时间过期)
    persist age (取消age的过期时间)
    randomkey (随机返回数据库一个key)
    rename set1 set2 (重命名set1为set2)
    type set1 (查看set1数据类型)
2 服务器相关命令
    ping (返回PONG,代表LIVE)
    select 1 (选择数据库redis数据库编号从0-15,默认0)
    dbsize (返回当前数据库中key的数目)
    info (redis服务器相关信息)
    config get * (获取config信息)
    flushdb (清空当前数据库)
    flushall(清空所有数据库)

四 Redis高级应用

1 安全性
    设置个复杂的密码,配置文件:requirepass pass2!!
    重启后进入 redis-cli -a pass2!!
2 主从复制
    slave配置文件加入如下配置
    slaveof 192.168.1.10 6379 #指定master的ip和端口
    masterauth pass2!! #master的密码
    保存后重启
3 事务处理(不会回滚)
    1  multi 开启事务
    2  set age 10 操作
    3  exec   提交事务
    4 discard 取消事务
4 乐观锁
    watch age (监控age如果被修改,将执行不成功)
    multi
    set age 10
    exec
5 持久化机制
    两种方式
    1 快照模式 默认
        save 900 1 #900秒内如果1个key被修改,就保存
    2 aof模式,更安全
        appendonly yes
        appendfsync always //收到命令立即写 IO高
        appendfsync everysec //每秒写一次 
        appendfsync no //依赖OS,性能好,持久化没保证
6 发布订阅信息
    subscribe tv1 (监听频道tv1)
    publish tv1 messagesssss

7 虚拟内存的使用
    really-use-vm yes
    vm-enabled yes #开启VM
    vm-swap-file /tmp/redis.swap #保存文件路径
    vm-max-memory 100000    #redis最大内存上限
    vm-page-size 32 #每个页面的大小32字节
    vm-page 134217728 #最多使用多少页面
    vm-max-threads 4 #工作线程数

五 PHP-REDIS使用

安装php redis扩展 http://redis.io/clients#php (推荐phpredis)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/36232.html

相关文章

  • Redis学习笔记 - HyperLogLog

    摘要:基数估计就是在误差可接受的范围内,快速计算基数。独立用户统计会有一定的错误几率错误率约为。相关内容学习笔记数据类型与学习笔记数据类型与学习笔记数据类型与学习笔记数据类型与学习笔记数据类型与学习笔记数据类型与学习笔记慢查询日志 什么是 HyperLogLog Redis 在 2.8.9 版本添加了 HyperLogLog 结构。 Redis HyperLogLog 的本质还是字符串。 R...

    seanlook 评论0 收藏0
  • Redis学习笔记 - Slow Log 慢查询日志

    摘要:什么是是用来记录查询执行时间的日志系统。相关内容学习笔记数据类型与学习笔记数据类型与学习笔记数据类型与学习笔记数据类型与学习笔记数据类型与学习笔记数据类型与 什么是 SLOW LOG 1. Slow log 是 Redis 用来记录查询执行时间的日志系统。 2. 查询执行时间指的是不包括像客户端响应(talking)、发送回复等 IO 操作,而单单是执行一个查询命令所耗费的时间。 3....

    BigTomato 评论0 收藏0
  • Redis学习笔记 - 数据类型与API(1)Key

    摘要:学习笔记数据类型与相关命令常用命令命令含义时间复杂度查找所有符合给定模式的,为数据库中的数量计算的总数检查是否存在删除指定的设置查看去掉的过期时间查看的类型遍历当较多时,命令执行时间较长,会造成阻塞,慎用该命令。 Redis学习笔记 - 数据类型与API(1)Key Key相关命令 1. 常用命令 命令 含义 时间复杂度 keys 查找所有符合给定模式 pattern 的 k...

    marser 评论0 收藏0
  • 上古程序猿坚决反对用Redis,我该怎么说服他?

    摘要:前段时间,有个人吐槽自己的同事是上古程序猿,一直坚持反对使用。上古程序猿坚决反对用,我该怎么说服他分布式锁如果你是一位后端工程师,面试时八成会被问到,特别是大厂,不仅要求能简单使用,还要深入理解底层原理,具备解决常见问题的能力。 前段时间,有个人吐槽自己的同事是上古程序猿,一直坚持反对使用Redis。那位上古程序猿设计公司...

    番茄西红柿 评论0 收藏2637
  • 上古程序猿坚决反对用Redis,我该怎么说服他?

    摘要:前段时间,有个人吐槽自己的同事是上古程序猿,一直坚持反对使用。那位上古程序猿设计公司的业务系统时候,始终坚持永远不要用缓存其他人想用,例如做个接口防重复,一定要用数据库来实现,包括定期失效之类的功能。项目中使用,主要考虑性能和并发。 前段时间,有个人吐槽自己的同事是上古程序猿,一直坚持反对使...

    不知名网友 评论0 收藏0
  • Redis学习笔记一:CentOS 6下安装redis

    摘要:此时目录结构拷贝中的到安装目录中此时目录结构为修改为后台启动输入命令启动。输入命令退出操作数据库。数据库安装成功了。 1. 安装redis编译的c环境: 因为redis是使用C语言编写的,所以在我们的Linux系统上要安装redis的编译环境 输入:[root@hadoop100 /]# yum install gcc-c++ 2. 下载redis安装包并解压: 访问官网,下载re...

    lifefriend_007 评论0 收藏0

发表评论

0条评论

dreamans

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<