Redis入门介绍

Redis入门介绍

概念

1.REmote DIctionary Server(远程字典服务器)

是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器

2. Redis 与其他 key - value 缓存产品有以下三个特点

1Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
2Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
3Redis支持数据的备份,即master-slave模式的数据备份

3.用途

1内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务
2取最新N个数据的操作,如:可以将最新的10条评论的ID放在Redis的List集合里面
3模拟类似于HttpSession这种需要设定过期时间的功能
4消息中间件。发布、订阅消息系统

4.linux下redis文件介绍

默认安装目录:usr/local/bin
Redis-server:Redis服务器启动命令
Redis-cli:客户端,操作入口
Redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何
Redis-check-aof:修复有问题的AOF文件
Redis-check-dump:修复有问题的dump.rdb文件
Redis-sentinel:redis集群使用

5.redis的简单命令

1redis是一个单进程,单进程模型来处理客户端的请求。对读写等事件的响应是通过对epoll函数的包装来做到的。Redis的实际处理速度完全依靠主进程的执行效率
默认16个数据库,类似数组下表从零开始,初始默认使用零号库
Select命令切换数据库
Dbsize查看当前数据库的key的数量
Flushdb:清空当前库
Flushall;通杀全部库
统一密码管理,16个库都是同样密码,要么都OK要么一个也连接不上
默认端口是6379

6.redis启动与连接

1修改移动的redis.conf文件,将daemonize no 改成yes
2/usr/local/bin目录下运行redis-server,运行拷贝出存放了自定义conf文件目录下的redis.conf文件
3启动客户端,进行连通测试

eg:
redis-server /root/user/redis.conf 
[root@localhost bin]# redis-cli -p 6379
127.0.0.1:6379> ping
PONG

5+1数据类型

1. key

keys * 查看所有的key
exists key 判断某个key是否存在
move key db 将key从当前库移除到指定的库
expire key 为key设置过期时间
ttl key 查看key还有多少秒过期,-1表示永不过期,-2表示已过期
type key 查看key是什么类型
127.0.0.1:6379> set k1 v1 
OK
127.0.0.1:6379> set k2 v2
OK
127.0.0.1:6379> keys *
1) "k2"
2) "k1"
127.0.0.1:6379> exists k1
(integer) 1
127.0.0.1:6379> exists k3
(integer) 0
127.0.0.1:6379> move k1 1
(integer) 1
127.0.0.1:6379> keys *
1) "k2"
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> keys *
1) "k1"
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> set k3 v3
OK
127.0.0.1:6379> expire k3 10
(integer) 1
127.0.0.1:6379> ttl k3
(integer) 8
127.0.0.1:6379> ttl k3
(integer) 0
127.0.0.1:6379> ttl k3
(integer) -2
127.0.0.1:6379> type k2
string

2. String
单值单value

set/get/del/append/strlen
Incr/decr/incrby/decrby,一定要是数字才能进行加减
getrange/setrange
setex(set with expire)/setnx(set if not exist)
mset/mget/msetnx
getset(先get再set)

每一张图片执行前,都执行一次flushdb,清空之前的设置,主要是熟悉命令

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. List
单值多value

lpush/rpush/lrange 
lpop/rpop
lindex,按照索引下标获得元素(从上到下)
llen
lrem key 删N个value
ltrim key 开始index 结束index,截取指定范围的值后再赋值给key
rpoplpush 源列表 目的列表
lset key index value
linsert key  before/after 值1 值2

lpush 6 5 4 3 2 1 left 向左插
rpush 1 2 3 4 5 6 right 向右插

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
4. Set
单值多value

sadd/smembers/sismember
scard,获取集合里面的元素个数
srem key value 删除集合中元素
srandmember key 某个整数(随机出几个数)
spop key 随机出栈
smove key1 key2 在key1里某个值 作用是将key1里的某个值赋给key2
差集sdiff
交集sinter
并集sunion

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5. Hash
KV模式不变,但V是一个键值对

hset/hget/hmset/hmget/hgetall/hdel
hlen
hexists key 在key里面的某个值的key
hkeys/hvals
hincrby/hincrbyfloat
hsetnx

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
6. Zset

在set基础上,加一个score值。
之前set是k1 v1 v2 v3,
现在zset是k1 score1 v1 score2 v2

zadd/zrange
zrangebyscore key 开始score 结束score
zrem key 某score下对应的value值,作用是删除元素
zcard/zcount key score区间/zrank key values值,作用是获得下标值/zscore key 对应值,获得分数
zrevrank key values值,作用是逆序获得下标值
zrevrange
zrevrangebyscore  key 结束score 开始score

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值