键可以包含 字符串、哈希、链表、集合有有序集合。本篇讲的是string类型和hash类型
启动redis
redis-server
启动如下
我这个没有在后台启动,单独一个终端启动,用户也可以配置后台启动(配置文件daemonize 改为 yes),单独的终端有个好处可以观看一些存取信息。
现在需要重新开一个终端,输入 redis-cli,出现下图则表示客户端连接成功
最简单的数据类型 一个Key对应一个Value,String类型是二进制安全的。
redis的String可以包含任何数据,比如jpg图片或者序列化对象
set 设置key对应的值为string类型的value
get 获取 一个key对应一个value
setnx设置key对应的值为string类型的value,如果key已经存在,则返回0,并且设置不更新,
如果不存在,返回1,更新成功 nx(not exists)
setex 设置key对应的值为string类型的value,并指定此键值对的有效期。
setex hirecolor 10 red 设置10秒过期 超时返回 nil
ttl hirecolor 查看剩余生存时间
此时我们 执行get hirecolor 返回nil
setrange设置指定key的value值的子字符串
setrange name 6 gmail.com(从第六个字符开始替换,后面多余的字符不删除。) 返回新的value的长度,如图中的15
mset 一次设置多个key值,成功返回OK,失败返回0
msetnx (和上面的setnx类似)一次设置多个key的值,成功返回OK,表示所有的值都设置了,失败返回0表示没有任何值被设置,但不会覆盖已经存在的值。一个键值没有设置成功,其他键都不会设置成功。
mget 批量获取 mget name1 nam2 name3 name4
我们现在知道了get是 获取一个值
这里说的是getset
getset 设置一个新值,返回一个旧值。
getrange 获取子字符串 getrange name 0 5
p.s 图片水印很烦人?怎么去掉?
incr age 对key的值做加操作 incr age age必须是数字,否则会报错
incrby age 100 加指定的值这里的
incrby可以设置某一个键
incrby age 100
incrby age -100
decr对key的值做减操作 传正数- 传负数+ decrby 这里不再演示了
append 给指定key的值追加value,返回新字符串
strlen 取指定key的value的长度
redis hash 是一个string类型的filed和value的映射表。
它的添加 删除操作时间复杂度都是0(1)(平均) hash特别适合用于存储对象。
相较于将对象的每个字段存成单个string类型,将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象。
hset 设置hash field为指定值,如果key不存在,则先创建。
hset myhash filed Hello
hset user:001 name jackson
hget user:001 name
hsetnx 设置hash filed 的指定值,如果key不存在,则先创建,如果存在返回0
hmset 同时设置hash的多个filed.
hmget 同时获取hash的多个filed.
hmsetuser:003 name ljn age 24 sex 1
hmget user:003 name age sex
指定的hash filed加上给定的值
hincrby user:003 age 5 (返回修改过后的值)
hexists 测试指定的filed是否存在 如果有 返回1,没有返回0
hexists user:003 age
hlen 指定hash的filed的数量
hlen user:001
hlen user:003 返回3
hdel 删除指定hash的filed
hdel user:003 age
hget user:003 age
hkeys 返回所有的字段
hkeys user:003
hvals 返回所有的value
hvalsuser:003
hgetall 返回某个hash全部的filed和value
hgetall user:003