1. String的操作
-
set key value:将单个字符串值value关联到key,存储到Redis
set name zs #key为 name, 值为zs
-
get key:返回key关联的字符串值
get name #获取值,key为 name
-
mset key value key value:同时设置一个或多个 key-value 对
mset name zs age 18 #设置了两对key ,name=zs ; age=18
-
mget key key:获取多个值
mget name age #获取key为name和age的数据的值
-
incr key:将 key 中储存的数字值增1(key不存在,则初始化为0,再加1)
incr age #age的值增加1
-
decr key:将 key 中储存的数字值减1(key不存在,则初始化为0,再减1)
decr age #将age的值减去1
-
incrby key number:将 key 中储存的数字值增加指定数字
incrby age 2 #在age的值的基础上增加2
-
decrby key number:将 key 中储存的数字值减少指定数字
decrby age 2 #在age的值的基础上减去2
2. key的操作
-
keys * :查看所有的key
keys *
-
del key:删除指定的某个key
del username #删除key为username的数据
-
expire key s ecnods:设置key的过期时间(secnods秒后过期)
expire name 10 #设置name的过期时间10s
-
ttl key:查看key的过期时间
ttl name #查看name的过期时间
-
flushall:清空整个redis服务器数据,所有的数据库全部清空
flushall
-
flashdb:清除当前库
flushdb 默认是0号库:redis中默认有16个数据库,名称分别为0,1,2.。。15 切换1号库:select 1
-
select index:选择数据库,redis中默认有16个数据库,名称分别为0,1,2,,,15 , index数据库索引
select 1 #选择第2个数据库
-
exists key:查询key是否存在
exists name
3. List的操作
3.1. List常用操作
list可以看成是一个左右排列的队列(列表)
-
List机构模拟图
key value value value names zs ls ls ages 11 18 20 -
lpush key value value:将一个或多个值 value 插入到列表 key 的表头(最左边)
lpush names zs ls ls ww ls #往key为names的list左边依次添加值:zs ls ls ww ls #[ls ww ls ls zs]
-
lrange key start stop:返回列表 key 中指定区间内的元素,查询所有的stop为-1即可
lrange names 0 -1 #查看names的所有元素
-
rpush key value value:将一个或多个值 value 插入到列表 key 的表尾(最右边)
rpush names tom jack jack rose #往key为names的list右边依次添加值:tom jack jack rose #[ls ww ls ls zs tom jack jack rose]
-
lpop key:移除并返回列表 key 的头(最左边)元素。
lpop names #移除并返回names列表的头(最左边)元素 #[ww ls ls zs tom jack jack rose]
-
rpop key:移除并返回列表 key 的尾(最右边)元素。
rpop names #移除并返回names列表的尾(最右边)元素。 #[ww ls ls zs tom jack jack]
-
lrem key count value:根据count值移除列表key中与参数value相等的元素count
-
count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 的值
-
count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值
-
count = 0 : 移除表中所有与 value 相等的值
rpush stars zs ls zs zs ls ww tq ls tq zl zs ls #[zs ls zs zs ls ww tq ls tq zl zs ls] lrem stars 2 zs #从左边删除2个zs lrem stars 0 tq #删除所有tq lrem stars -1 zs #从右边删除1个zs #[ls zs ls ww ls zl ls]
-
lindex key index:返回列表 key 中,下标为 index 的元素
lindex names 2 #取names列表中索引为2的元素 #zs
-
ltrim key start stop:对一个列表进行修剪 ,保留范围内的,范围外的删除
ltrim names 2 4 #获取names列表中下标为2到4的元素 #[zs ls ww]
3.2. Redis实现栈和队列
-
list控制同一边进,同一边出就是栈【先进后出FILO】
-
list控制一边进,另一边出就是队列【先进先出FIFO】
4. Hash的操作
Hash类似于jdk中的Map,一个key下面以键值对的方式存储数据
-
hset key field value:设置 key 指定的哈希集中指定字段的值。如果 key 指定的哈希集不存在,会创建一个新的哈希集并与 key 关联。如果字段在哈希集中存在,它将被重写。
hset user1 name zs #给user1这个key设置name=zs键值对
-
hget key name获:取hash类型的name键对应的值
hget user1 name #获取user1中的name对应的值
-
hmset key field value field value:批量添加name=value键值对到key这个hash类型
hmset user2 name zs age 18 #给user2这个key设置name=zs键值对和age=18键值对
-
hmget key field field:批量获取hash类型的键对应的值
hmget user2 name age #获取user2中的name和age所对应的值
-
hkeys key:返回哈希表 key 中的所有键
hkeys user2 #返回user2总的所有字段
-
hvals key:返回哈希表 key 中的所有值
hvals user2 #返回user2中的所有值
-
hgetall key:返回哈希表 key 中所有的键和值
hgetall user2 #返回user2中所有key和value
5. Set的操作
set集合是一个无序的不含重复值的队列
-
set机构模拟图
key | value | value | value |
---|---|---|---|
idcards | 110 | 120 | 130 |
phones | 182 | 135 | 136 |
-
sadd key value value:将一个或多个member元素加入到集合key当中,已经存在于集合的 member 元素将被忽略
sadd colors red green yellow blue #往colors这个set集合中存放元素
-
smembers key:返回集合 key 中的所有成员
smembers colors
6. sort key
-
对 list,set,zset进行排序
sort ages #对年龄集合进行排序,默认升序 sort ages desc #对年龄集合进行排序,倒序 sort names alpha #对姓名集合进行字典顺序排序 sort names limit 0 10 #取names集合中,从第1个元素,往后取10个元素