php-高级编程QQ群:490910618
一.Redis是什么
Redis是高性能Key-Value数据库,属于非关系型数据库的一种。
二.Redis支持的数据类型
共支持5种数据类型:string,list,hash,set,zset
1.string (字符串类型)
string可以是字符串,数字。实际存储在redis中的类型为string,遇到数值计算时,才会转换成int类型去做运算。
最常用:
SET 设置键存储的值 如 SET name zhangshengnan/ SET age 24
GET 获取键存储的值 如 GET name / GET age
DEL 删除键值对 如 DEL name / DEL age
下面这些是对键存储的值的一些操作:
APPEND 追加数据到键存储的值后面 如 APPEND age 9(age原本为24,执行本条后变为249
INCR 将键存储的值+1 如 INCR age (age原本为24,执行本条后变为25)
DECR 将键存储的值-1 如 DECR age (age原本为24,执行本条后变为23)
INCRBY 将键存储的值+number 如 INCRBY age 10(age原本为24,执行本条后变为34)
DECRBY 将键存储的值-number 如 DECRBY age 10 (age原本为24,执行本条后变为14)
下面这些事对键的一些操作:
EXISTS 检查键是否存在 如 EXISTS name
EXPIRE 设置某键的过期时间 如 EXPIRE name 3600 (单位秒)
PEXPIRE 设置某键的过期时间 如 PEXPIRE name 36000000(单位毫秒)
PERSIST 删除过期键 如 PERSIST name
TTL 获取剩余到期时间 如 TTL name(单位秒)
PTTL 获取剩余到期时间 如PTTL name(单位毫秒)
RANDOMKEY 从redis返回随机键 如 RANDOMKEY
RENAME 更改键名 如 RENAME name familyname
TYPE 返回键存储的值的数据类型 如 TYPE age
2. list (列表)
列表可以理解成把单个string类型练成链表,redis的list支持正反向查找(即双向链表),list可做队列,也可做栈使用,主要的用法就是push和pop。
最常用:
RPUSH 将值推到列表右端 如 RPUSH student zhangshengnan
LPUSH 将值推到列表左端 如 LPUSH student zhangshengnan
RPOP 将列表最右端的值弹出并返回 如 RPOP student
LPOP 将列表最左端的值弹出并返回 如 LPOP student
较常用:
LLEN 获取列表长度 如 LLEN student
LRANGE 获取列表上指定范围的所有值 如 LRANGE student 0 -1 (这里0 到-1中的-1指最后一个元素)
LINDEX 获取列表上指定位置的值 如 LINDEX student 0(这里返回student中的第一个值即:zhangshengnan)
3.hash (哈希散列)
这个非常容易理解,hash的key对应的是一个map,map里面的结构是field,value对,数字字符串都可以。
最常用:
HKEYS 获取hash中所有的key 如 HKEYS student
HEXISTS 判断key对应field是否存在 如 HEXISTS student name
HSETNX 判断key对应field不存在时赋值value 如 HSETNX student name zhangshengnan
HSET 设置hash中key对应field的值 如 HSET student name zhangshengnan
HGET 获取hash中key对应field的值 如 HGET student name
HGETALL 获取hash中key对应的多有field,value对 如 HGETALL student
HDEL 删除hash中key对应field及值 如 HDEL student name
4.set (集合)
顾名思义,就是一些不重复的值,放在一起的合集。
最常用:
SADD 添加某元素到集合中 如 SADD student zhangshengnan
SREM 删除集合中指定的值 如 SREM student zhangshengnan
SMEMBERS 获取key对应的所有值 如 SMEMBERS student
SISMEMBER 判断某值是否存在于集合中 如 SISMEMBER student zhangsan
SPOP 随机弹出一个集合中的值 如 SPOP student
5.zset (有序集合)
类似与集合,不同之处为键被称为member,多一个score用来排序。
最常用:
ZADD 将一个有score的元素添加到集合 如 ZADD student 100 zhangshengnan
ZSCORE 获取某元素分数 如 ZSCORE student zhangshengnan
ZRANGE 获指范围内元素按score从小到大排序 如 ZRANGE student 0 -1 withscores
ZREVRANGE 获取范围内元素按socre从大到小排序 如 ZREVRANGE student 0 -1 withscores
ZRANGEBYSCORE 获取指定范围socre的元素 如 ZRANGEBYSCORE student 0 200 withscores
ZREM 删除有序集合中指定的元素 如 ZREM student zhangshengnan