title: 【学习之路】Redis学习
draft: true
tags:


Rides 永远的HelloWorld


  1. 先cd到redis目录下
  2. 输入redis-server 出现Redis的Logo代表启动成功

Redis学习 - 图1

修改配置文件让Redis再后台运行

  1. 修改配置文件前请先备份
  2. 再Redis目录下使用 vim redis.conf 将daemonize no改为yes

Redis学习 - 图2

再启动redis服务输入redis-cli -p 6379 输入ping会返回PONG代表链接成功

redis ping ping.png)

  1. 输入set key1 hellow 我们就往redis存入了第一个值输入get key1 就会返回刚刚存入的值

set key key.png)

Redis基础知识

  1. Redis是单进程
  2. Redis默认是16个数据库,类似数组下标从0开始,初始默认使用0号库
  3. 使用select 数据库下标切换数据库
  4. 使用Dbsize 查看当前数据库key的数量
  5. 使用Flushdb 清空当前库
  6. 使用Flushall 清空全部库
  7. 统一密码管理,16个库是同样的密码,要么都OK要么都链接不上
  8. Redis的索引都是从0开始
  9. Redis默认端口是6379

Redis数据类型


Redis五大数据类型

  1. String 字符串
  2. Hash 哈希、类似java中的Map
  3. List 列表
  4. Set 集合
  5. Zset 有序集合

Redis键(key)

  1. keys *:查看当前数据的所有key
  2. exists key的名字:判断key是否存在
  3. move key 数据库下标:将这个key移到另外一个库当前库的key就被移除
  4. expire key 秒:为给定的key设置过期时间
  5. tll key:查看key还有多少秒过期,-1表示永不过期,-2表示已经过期
  6. type key:查看key是什么类型

Redis字符串(String)

  1. del key:删除当前key
  2. append key:往当前key后追加字符
  3. strlen key:查看当前key长度
  4. Incr key:让当前key加1 必须要是数字
  5. decr key:让当前key减1 必须是数字
  6. incrby key 需要加的数:让当前key加N 必须是数字
  7. decrby key 需要减的数:让当前key减N 必须是数字
  8. del key:删除当前key
  9. append key:往当前key后追加字符
  10. strlen key:查看当前key长度
  11. Incr key:让当前key加1
  12. decr key:让当前key减1
  13. incrby key 需要加的数:让当前key加N
  14. decrby key 需要减的数:让当前key减N
  15. getrange key 0 3:从0开始截取到3号下标 填0 -1为截取全部
  16. setrange key 0 xxx:从0号索引开始添加xxx字符0号索引的字符会被覆盖
  17. setex key 秒 值:指定一个key可以存活几秒
  18. setnx k11 v11:如果key存在就不会插入
  19. mset k1 v1 k2 v2:可以同时插入多个key
  20. mget k1 v1 k2 v2:同时获取多个key
  21. msetnx:同时添加多个值如果有相同那么就不会添加
  22. getset:先get再set

Redis列表(List)

  1. Lpush:从左往右插入(倒叙)
  2. Rpush:从右往左插入(正序)
  3. Lrange:从左往右遍历
  4. Lpop:从左往右顶出
  5. Rpop:从右往左顶出
  6. lindex 按照索引下标获得元素(从上到下)
  7. Ltem key 删N个value
  8. Ltrim key 开始index 结束index,截取指定范围的值后再付给key
  9. rpoplpush:源列表 目的列表:将源列表的值弹出添加到目的列表行首
  10. lset key index value:替换key当前索引的值
  11. linsert key before x oracle:在key中x值的后面插入一个oracle,使用after在之前插入
    性能总结

Redis集合(Set)

  1. sadd set 1 2 3
  2. smembers set:查看当前集合的内容
  3. sismember set:查看当前集合是否有这个值没有返回0
  4. scard:获取集合里元素个数
  5. srem key value:删除集合中的元素
  6. srandmember key 随机出来的个数:在一个集合里随机几个数
  7. spop key:随机出栈
  8. smove key1 key2 在key1里的某个值:将key1里的某个值付给key2
  9. 数学集合类

    1. 差集:sdiff
    2. 交集:sinter
    3. 并集:sunion

Rides哈希(Hash)

  1. hset user id 11:添加key
  2. hget user id:获取key
  3. hmset user id 11 name zhangsan:添加多个key
  4. hmget user id name:获取多个key
  5. hgetall user:获取全部key
  6. hdel user name:删除key
  7. hlen user:key的长度
  8. hexists key key:判断在key里面某个值的key
  9. hkeys:获取一个key的所有key
  10. hvals:获取一个key中所有key的value
  11. hincrby user age 2:给一个key中key的value自增2
  12. hincrbyfloat user score 2.1:给一个key中key的value自增2.1
  13. hsetnx user age 18:同时添加多个值的时候就不会重复添加

Redis有序集合Zset(sorted set)

  1. zadd
  2. zrange zeset01 0 -1:获取所有value 添加withscores会显示所有key和value
  3. zrangebyscore key 开始score 结束score:可以添加limit 开始下标 多少步 截取
  4. zrem key 某score下对应的value值,作用是删除元素
  5. zcard zset01:获取长度
  6. zcount key score区间:用来判断value与value区间有多少个值
  7. zrank key values值:获得下标值
  8. zscore key key:对应值,获得value
  9. zrevrank key values值:作用是逆序获得下标值
  10. zrevrangebyscore key 结束score 开始score