学习笔记(Redis)

112 阅读4分钟

学习笔记(Redis)

相关资料

各种数据库分析:db-engines.com/en/

官网: www.redis.io/ www.redis.cn/

默认端口:6379

安装

linux安装

1. yum install wget    下载wget
2. cd /     跳转到根目录
3. mkdir soft  创建soft(软件)目录
4. cd soft    
5  wget  http://download.redis.io/releases/redis-5.0.8.tar.gz下载redis压缩包
6. tar xf redis...tar.gz      解压
7. cd redis/src       到redis的src目录
8. 看README.md  安装编译教程及介绍
9. make    编译redis,生成redis可执行程序
    yum install gcc   如果编译报错  下载gcc环境(c语言环境)
    make distclean      清除报错信息
    make              重新编译
10. cd src     查看生成的可执行程序
   使用 ./redis-server 启动redis
11. cd .. 到redis根目录下 
12  make install PREFIX=/opt/ai/redis5    对可执行程序进行迁移  
13. vi /etc/profile   修改文件
    export REDIS_HOME=/opt/ai/redis5
    export PATH=$PATH:$REDIS_HOME/bin
    执行:source /etc/profile
       echo $PATH
14.    cd utils
15.    ../install_server.sh (可以执行一次或者多次,启动多个redis)
      填写端口号(不写默认为6379)
      填写配置文件(redis.conf)保存位置(默认: /etc/redis/端口号.conf)
      日志文件存放位置(默认: /var/log/redis_端口号.log)
      数据存放位置(默认: /var/lib/redis/端口号)
      选择redis服务路径(默认:12步路径/bin/redis-server)
   a) 一个物理机可以有多个redis实例(进程),通过port区分
   b)可执行程序在一份目录中,但是内存中未来的多个实例需要各自的配置文件,持久化目录等资源
   c) cd /etc/init.d    查看安装的redis实例
   
16. service redis_6379 start/stop/stauts      redis启动/停止/查看状态
17. ps -fe | grep redis   查看redis所有的进程

windows安装

使用

1.连接redis客户端

​ redis-cli -p 端口号 -n 库

​ -> 端口不写默认为6379 库不写默认为0号库

​ -> reids默认有15个库,每个库数据之间数据是相互隔离的

2.常用命令

​ help @String 查看文档

​ key:

​ keys * 查看所有key

​ select 0 选择第一个库

​ move key db 移动某个key到指定的数据库

​ flushall 清空数据库

​ randomkey 随机取一个key

​ type key 判断类型

​ del key 删除key

​ exists key 判断key是否存在

​ expire key 10 设置key的过期时间 秒

​ pexpire key 1000 同上 毫秒

​ persist key 删除设置的过期时间

3数据类型

String

​ set key value [ex seconds|px milliseconds] [nx|xx] 设置值

​ set k1 hello ex 10 nx

​ ex|px :失效时间 nx:key在就不赋值 xx:key不在不赋值,用于修改

​ setnx key value 不存在就插入

​ setex key time vavlue 过期时间

​ get key 获取

​ getrange key 0 -1 获取指定索引中间的值

​ getset key N_value 获取旧值设置新值

​ mset key1 v1 key2 v2 添加多个

​ mget key1 key 2 获取多个

​ append key value 追加值

​ strlen key 获取字符长度

​ incr key 递增

​ incrby key 10 指定一次递增多少

​ decr key 递减
​ decrby key 10 指定一次递减多少

​ incrbyfloat 增减浮点数

getbit 位操作

list 基于双向链表,key包含头指针和尾指针

​ lpush k a b c 左插入数据

​ lpush k 1 d r 3 g 4 yfg 343

​ rpush k a b c 右插入数据

​ lpop k 左弹出数据

​ rpop k 右弹出数据

​ lrange key 0 -1 查看数据

​ llen key 长度
​ lrem key count value 删除数据

​ lrem k1 2 a --> 删除前两个a

​ lrem k1 -2 a -->删除后两个a

​ lindex key 2 或者指定索引的值

​ lset key 2 v 索引设值

​ ltrim key 0 4 删除key

​ linsert key before value 后面插入

​ linsert key after value 前面插入

​ lrange key start after 删除start之前after之后的数据

​ 队列里没有数据取数据时会被阻塞

​ blpop 队列头取

​ brpop 队列尾取

Hash

​ hset key name cxx

​ hget key name

​ hmset key name cxx age 25 note "i am notes"

​ hmget key name age note

​ hgetall key 获取所有的

​ hexists key· name 是否存在

​ hsetnx key score 100 设置不存在的 hincrby key id 1 递增

​ hdel key name 删除

​ hkeys key 只取key hvals key 只取value

​ hlen key 长度

set 不允许有重复元素

sadd myset redis 
smembers myset       数据集合
srem myset set1         删除
sismember myset set1 判断元素是否在集合中
scard key_name       个数
sdiff | sinter | sunion 操作:集合间运算:差集 | 交集 | 并集
srandmember          随机获取集合中的元素
spop                 从集合中弹出一个元素

sorted set 带有元素排序的set

zadd zset 1 one
zadd zset 2 two
zadd zset 3 three
zincrby zset 1 one              增长分数
zscore zset two                 获取分数
zrange zset 0 -1 withscores     范围值
zrangebyscore zset 10 25 withscores 指定范围的值
zrangebyscore zset 10 25 withscores limit 1 2 分页
Zrevrangebyscore zset 10 25 withscores  指定范围的值
zcard zset  元素数量
Zcount zset 获得指定分数范围内的元素个数
Zrem zset one two        删除一个或多个元素
Zremrangebyrank zset 0 1  按照排名范围删除元素
Zremrangebyscore zset 0 1 按照分数范围删除元素
Zrank zset 0 -1    分数最小的元素排名为0
Zrevrank zset 0 -1  分数最大的元素排名为0
Zinterstore
zunionstore rank:last_week 7 rank:20150323 rank:20150324 rank:20150325  weights 1 1 1 1 1 1 1

5.数据持久化

RDB:

AOF: