Redis
Redis
key--操作数据库
插入数据/更新key的值 set key_name value
查询数据 get key_name
删除键值 del key_name
验证键是否存在 exists key_name
返回所有 key keys *
返回所有 xxx开头的 key keys xxx*
设置一个 key 的过期时间(单位:秒) expire key_name 10
移除给定 key 的过期时间 persist key_name
选择数据库[0..15] select index
将当前数据库中的 key 转移到其它数据库中 move key_name 1
返回值的类型 type key_name
更新key的值返回原来的值 getset key_name value
测试连接是否存活 ping
返回当前数据库中 key 的数目 dbsize
监视--实时转储收到的请求 monitor
删除当前选择数据库中的所有 key flushdb
删除所有数据库中的所有 key flushall
Redis数据类型--string
string 是最简单的类型 ,一个 key 对应一个value
redis 的 string 可以包含任何数据, 比如 jpg 图片或者序列化的对象,从内部实现来看其实 string 可以看作 byte 数组,最大上限是 1G 字节。
set:插入数据/更新key的值 set name dhee
get:查询数据 get key_name
mset:一次设置多个 key 的值 mset key1 dhc key2 jhc
mget :一次获取多个 key 的值 mget key1 key2 key3
setnx:如果 key 已经存在,返回 0 ,setnx name dhee
setex:指定此键值对应的有效期,时间单位为秒 ,setex name 120 dhee
setrange:设置指定 key 的 value 值的子字符串 ,从指定的位置开始替换字符 ,setrange name 3 @dhc.com
getrange:获取指定 key 的 value 值的子字符串 getrange name 0 6
** expire:设置key失效时间 expire key_name 3
Redis 哈希(Hash)
一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。
Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。
hset :设置 hash field 为指定值,hset myhash name dhee
hget :获取指定的 hash field,hget myhash name
** hmset:同时设置 hash 的多个 field,hmset myhash name dhee age 20
** hmget :获取全部指定的 hash filed,hmget myhash name age password
** hlen :返回指定 hash 的 field 数量,hlen myhash
hdel :删除一个或多个哈希表字段,hdel myhash age
hkeys:返回 hash 的所有 field,hkeys myhash
hvals :返回 hash 的所有 value:hvals myhash
hgetall :获取某个 hash 中全部的 filed及value,hgetall myhash
Redis 列表(List)
简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
lpush:在 key 对应 list 的头部添加字符串元素 ,lpush mylist world lpush mylist hello
lrange: lrange mylist 0 1
** rpush :在 key 对应 list 的尾部添加字符串元素 , rpush mylist world rpush mylist hello
** linsert :在 key 对应 list 的特定位置前或后添加字符串 ,linsert mylist before world dhee
** lset :设置 list 中指定下标的元素值(下标从 0 开始) ,lset mylist 0 dhc
`lrem` :从 key 对应 list 中删除 count 个和 value 相同的元素,lrem mylist 2 hello
** ltrim :保留指定 key 的值范围内的数据, ltrim mylist 1 3
lpop :从 list 的头部删除元素,并返回删除元素, lpop mylist
** rpop :从 list 的尾部删除元素,并返回删除元素, rpop mylist
** lindex :返回名称为 key 的 list 中 index 位置的元素 ,lindex mylist 0
** llen :返回 key 对应 list 的长度 ,llen mylist
Redis 集合(Set)
Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
`sadd` : sadd myset hello
`smembers` :查看 myset 中的所有元素 , smembers myset
`srem` :删除名称为 key 的 set 中的元素 member, srem myset hello
spop :随机删除名称为 key 的 se t 中一个元素,spop myset
sdiff:返回第一个 set集合与第二个 set集合的差集,sdiff myset2 myset1
sdiffstore :返回第一个 set集合与第二个 set集合的差集 ,并将结果存为另一个 set, sdiffstore
myset3 myset2 myset1
sinter:返回所有给定 key 的交集 ,sinter myset1 myset2
sinterstore :返回所有给定 key 的交集,并将结果存为另一个 key ,sinterstore myset4 myset2
myset1
`sunion`:返回所有给定 key 的并集 ,sunion myset2 myset1
sunionstore :返回所有给定 key 的并集,并将结果存为另一个key
sunionstore myset5 myset2 myset1
`scard`:返回名称为 key 的 set 的元素个数 ,scard myset2
Redis 有序集合(sorted set)
Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
`zadd`:向名称为 key 的 zset 中添加元素 member, score 用于设定分数。如果该元素已经存在,则根据
`score` 更新该元素的分数。zadd key score member,zrange myzset 0 -1 withscores
`zrem` :删除名称为 key 的 zset 中的元素 member ,zrem myzset two
`zincrby`:给成员增加指定分数 zincrby myzset 1 one
`zrank` :返回zset 中名称为 key 的 member 元素的排名(按 score 从小到大排序)即下标 zrank myzset two
`zrevrank`:返回zset 中名称为 key 的 member 元素的排名(按 score 从大到小排序)即下标 zrevrank myzset two
`zrevrange` :按 score 从大到小排序,再取出全部元素 ,zrevrange myzset 0 -1 withscores
`zrangebyscore` :返回集合中 score 在给定区间的元素,zrangebyscore myzset 2 3 withscores
`zcount` :返回集合中 score 在给定区间的数量 ,zcount myzset 2 3
`zcard` :返回集合中元素个数 zcard myzset (key 的个数)
`zscore` :返回给定元素对应的 score ,zscore myzset two (key 的 score 数量)
zremrangebyrank :删除集合中排名在给定区间的元素 ,zremrangebyrank myzset 3 3
zremrangebyscore :删除集合中 score 在给定区间的元素,zremrangebyscore myzset 1 2

浙公网安备 33010602011771号