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

posted @ 2021-03-12 17:11  PaulGeorge13  阅读(65)  评论(0)    收藏  举报