1.redis 學習網址
1. redis http://doc.redisfans.com/#redis
2. redis 官网地址 https://redis.io/
3. 更多配置 https://www.cnblogs.com/kreo/p/4423362.htm
2.redis与其他数据库的对比
数据库的存储方式大体可分为两大类,基于磁盘存储和基于内存存储。磁盘存储的数据库,因为磁头机械运动以及系统调用等因素导致读写效率较低。Redis 基于内存来实现数据存取,相对于磁盘来说,其读写速度要高出好几个数量级。下表将 Redis 数据库与其他常用数据库做了简单对比:
Redis 基于内存来实现数据的存储,因此其速度非常快。但是我们知道,计算机的内存是非常珍贵的资源,所以 Redis 不适合存储较大的文件或者二进制数据,否则会出现错误,Redis 适合存储较小的文本信息。理论上 Redis 的每个 key、value 的大小不超过 512 MB。总得来说,上述数据库各有优势,当我们选用数据库时,也要因地制宜选择一款与业务场景最相符合的数据库。
3.redis 常用命令
select index # inde為索引 數據庫 0-15
dbsize #查看當期數據庫的可以數量
keys * #查看key的内容
FLUSHDB 清空当前数据库的key的数量
FLUSHALL 清空所有数据库的key(慎用)
exists key 判断key是否存在
3.1 redis string 类型的命令
string 可以包含任何數據,最大不能超過512M,作為redis最基本的類型,是一個key對 應一個value
- set/get/del/append/strlen
set/get/mset/mget/append/del/strlen
mget
MGET key [key ...]
Mset
MSET key value [key value ...]
如果某个给定 key 已经存在,那么 MSET 会用新值覆盖原来的旧值,如果这不是你所希望的效果,请考虑使用 MSETNX 命令:它只会在所有给定 key 都不存在的情况下进行设置操作。
append
append key value
如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。
如果 key 不存在, append就简单地将给定 key 设为 value ,就像执行 SET key value 一样。
strlen(返回字符串的長度)
2.Incr/decr/INCRBY/DECRBY
3.getrange/setrange
3.2 redis list类型的命令
1. rpush/lpush/lrange
2. lpop/rpop
3. lindex 按照索引下標獲取的元素
Lindex list01 0 -1
Lindex list01 1
4.llen,求列表長度
5.lrem key
lrem list01 2 1 #在list01中刪除2個1
6.ltrim
7.rpoplpush list1 list2 將list1最後一個亞茹到list2中的第一位
8. lset key index value
9.linsert list01 before/after
linsert list01 before x php 在x之前加字段php
3.3 redis-Hash
2. hlen 返回哈希表 key 中域的数量。
hlen customer
- hkeys 一個包含哈希表中所有域的表,當key不存在時,返回一個空表。
3.3 redis-Set無序()
1. sadd/smembers/sismember
2.scard
3. screm key value # 刪除集合元素
4. srandmember key 隨機出幾個數
5. pop key 隨機出棧(刪除)
6. smove key1 key2
3.3 redis-Set有序
1. zadd/ zrange
zrange zset1 0 -1 withscores
2. zrangebyscore key start end
3.zrem key zrem zset01 v1
4. zcard/zcount key score區間/zrank key values