Redis 学习整理

Redis介绍

Redis 是 REmote Dictionary Server 的缩写, 它以字典存储结构,并允许其它应用通过TCP协议读写字典中的内容。

优势
1.数据存储形式和程序中的存储形式很相近。
2.对不同数据类型提供方便的操作方式

redis提供多个数据库(默认16),每个数据库以编号命名
(不可修改),权限统一,数据库之间不完全隔离。
redis可设置生存时间,设置占用内存空间,可修改源码

命名键规则(对象类型:对象ID:对象属性)

redis命令返回值:
1.状态回复 ping-pong
set-ok
2.错误回复 error
3.整数回复
4.字符串回复
5.多行字符串回复

支持的键值数据类型:
字符串类型 string
散列类型 hash
列表类型 list
集合类型 set
有序集合类型 zset


Redis基础

(Redis命令不区分大小写)

用途命令
linux连接redis-cli
获得符合规则的键名列表KEYS pattern
判断一个键是否存在EXISTS key
删除键 (返回删除个数)DEL key [key …]
获得键值的数据类型TYPE key




字符串类型 (string)

用途命令
获得/设置键值SET key value
GET key
增加指定的整数INCR key
INCRBY key increment
减少指定的整数DECR key
DECRBY key decrement
增加指定的浮点数INCRBYFLOAT key increment
向尾部追加值APPEND key valuere
获取字符串长度STRLEN key
同时获得/设置多个键值MGET key [key …]
MSET key value [key value…]
位设置GETBIT key offset
SETBIT key offset value
位计算BITCOUNT key [start] [end]
位运算bitop operation destkey key [key …]




散列类型(hash)
适合存储对象

用途命令
赋值与取值(更新操作返回0)HSET key field value
HGET key field
HMSET key field value [field value…]
HMGET key field [field…]
HGETALL key
判断字段是否存在HEXISTS key field
当字段不存在时赋值HSETNX key field value
增加数字HINCRBY key field increment
删除字段HDEL key field [field …]
只获取字段名或字段值HKEYS key
HVALS key
获得字段数量HLEN key




列表类型(list)
存储有序的字符串列表
越接近两端,访问速度越快。
通过索引访问元素较慢
可模拟栈和队列

用途命令
向列表两端增加元素,返回增加元素后列表的长度LPUSH key value [value …]
RPUSH key value [value …]
从列表两端弹出元素LPOP key
RPOP key
获取列表中元素的个数LLEN key
获得列表片段,支持负索引LRANGE key start stop
删除列表中指定的值,返回删除的元素个数LREM key count value
获得/设置指定索引的元素值LINDEX key index
LSET key index value
只保留列表指定片段,删除其它元素LTRIM key start end
向列表中插入元素LINSERT key BEFORE/AFTER pivot value
将元素从一个列表转到另一个列表RPOPLPUSH source destination




集合类型(set)
无序,唯一
利用散列表存储,拉链法解决冲突

用途命令
增加/删除元素SADD key member [member …]
SREM key member [member …]
获得集合中的所有元素SMEMBERS keys
判断元素是否在集合中SISMEMBER key member
集合间运算SDIFF key [key …]
SINTER key [key …]
SUNION key [key …]
获取集合中的元素个数SCARD key
进行集合运算并将结果存储SDIFFSTORE destination key [key …]
SINTERSTORE destination key [key …]
SUNIONSTORE destination key [key …]
随机获得集合中的元素SRANDMEMBER key [count]
从集合中弹出一个元素SPOP key




有序集合(sorted set)
常用于大数据排序,很少需要键中所有数据。

与列表对比
相同:
(1)二者都是有序的
(2)二者都可以获得某一范围元素
区别:
(1)列表通过链表实现,有序集合通过散列表和跳跃表实现
(2)列表不能简单调整某个元素位置,有序集合可通过更改分数实现
(3)有序集合更耗内存

用途命令
增加元素ZADD key score member [score member]
获得元素的分数ZSCORE key member
获得排名在某个范围的元素列表 (ZRANGE从大到小,ZREVRANGE反之)ZRANGE key start stop [WITHSCORES]
ZREVRANGE key start stop [WITHSCORES]
获得指定分数范围的元素ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
增加某个元素的分数ZINCRBY key increment member
获得集合中元素的数量ZCARD key
获得指定分数范围内的元素格式ZCOUNT key min max
删除一个或多个元素ZREM key member [member …]
按照排名范围删除元素ZREMRANGEBYRANK key start stop
按照分数范围删除元素ZREMRANGEBYSCORE key start stop
获得元素的排名ZRANK key member
ZREVRANK key member
计算有序集合的交集ZINTERSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]][AGGREGATE SUM

Redis事务(学习ing…)

Redis中的事务是一组命令的集合。Redis保证事物中的命令要么都执行,要么都不执行,同时一个事务内的命令依次执行且不被其他命令插入。

事务采用队列来实现。
MULTI 开启事务后,若因断线没有成功执行EXEC,那事务中的所有命令都不会执行。如果成功执行EXEC那命令都会执行。

语法错误将直接返回错误,所有命令都不执行。
运行错误则会跳过错误继续执行。
Redis不支持回滚。

WATCH 监控一个键或多个键,一旦其中有一个键被更改,事务不会执行。 监控持续到EXEC。
UNWATC 取消监控

EXPIRE key seconds 设置键的生存时间,到时间后自动删除(PXPIRE 毫秒)
(RXPIREAT PEXPIREAT 使用Unix时间)
TTL key 返回键的剩余时间
PERSIST 取消键的生存时间 (利用SET 或 GETSET 同样可清除)

实现访问频率限制
1.递增键值,限制次数。固定时间删除键
2.记录访问时间,超出次数,则计算与最近的访问时间差值。如果在限制条件内则删除最早元素。

缓存:可利用生存时间实现(可修改配置文件的maxmemory 修改最大内存 )
SORT key [ALPHA] [DESC] [LIMIT OFFSET COUNT]
排序(ALPHA根据字典数据 DESC 从大到小排列)

BY 参考键
GET 参数
STORE 参数


Redis 脚本(学习ing…)




Redis参考书

《Redis 入门指南》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值