学习笔记(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