redis有五种数据类型
字符串类型
String类型既可以保存普通文字,也可以保存序列化的二进制数据
,最大可以保存512M数据
SET email scott@163.com
GET email
DEL email
字符串指令
截取字符串内容
GENRANGE email 0 3
获取字符串长度
STRLEN email
设置过期时间KEY-VALUE
set username 5 scott
设置多个Key-value
mset username scott sex male
获得多个value
mget username sex
append在字符串结尾追加内容
set temp abcdset
INCR :数字自增加1
INCR num
数字加上指定的整数值
INCRBY num 25
decr:数字减1
dectby:数字减去指定整数值
没有浮点数减法,但是可以用加法变通一下
127.0.0.1:6379> set 0
(error) ERR wrong number of arguments for 'set' command
127.0.0.1:6379> select 0
OK
127.0.0.1:6379> set email scott163@qq,com
OK
127.0.0.1:6379> getrange email 0 3
"scot"
127.0.0.1:6379> strlen email
(integer) 15
127.0.0.1:6379> setex username 5 scott
OK
127.0.0.1:6379> get username
"scott"
127.0.0.1:6379> get username
(nil)
127.0.0.1:6379> mset username jack sex male age 24
OK
127.0.0.1:6379> meget username male age
(error) ERR unknown command 'meget'
127.0.0.1:6379> mget username male age
1) "jack"
2) (nil)
3) "24"
127.0.0.1:6379> mget username sex age
1) "jack"
2) "male"
3) "24"
127.0.0.1:6379> setex temp 60 ABCD
OK
127.0.0.1:6379> append tenmp 1234
(integer) 4
127.0.0.1:6379> get temp
"ABCD"
127.0.0.1:6379> append temp 1234
(integer) 8
127.0.0.1:6379> get temp
"ABCD1234"
127.0.0.1:6379> setex num 100 0
OK
127.0.0.1:6379> incr num
(integer) 1
127.0.0.1:6379> get num
"1"
127.0.0.1:6379> incrby num 35
(integer) 36
127.0.0.1:6379> get num
"36"
127.0.0.1:6379> incrbyfloat num 0.5
"36.5"
127.0.0.1:6379> get num
"36.5"
127.0.0.1:6379> setex num 200 10
OK
127.0.0.1:6379> decr num
(integer) 9
127.0.0.1:6379> decr num5
(integer) -1
127.0.0.1:6379> decr num 5
(error) ERR wrong number of arguments for 'decr' command
127.0.0.1:6379>
redis哈希类型
当value需要保存更复杂的数据化结构,这时候可以使用哈希类型
HEST:设置哈希表字段
hset 8000 ename Tom
hset 8000 job SALESMAN
获取哈希表字段值
HGET 8000 ename
HMGET获取多个哈希表字段值
HMGET 800 ename job deptno
获取所有哈希表字段值
HGETALL 8000
获取哈希表字段名
hkeys 8000
获取哈希表中的字段数量
hlen 8000
获取哈希表中所有的字段值
hvals 8000
删除哈希表字段
hdel 8000 job deptno
让哈希表的某个字段加上指定值
HINCRBY 8000 deptno 10
浮点数相加
HINCRBYFLOAT 8000 sal 350.5
RDM Redis Console
连接中...
Connected.
Redis:0>flushdb
"OK"
Redis:0>hset 8000 ename Tom
"1"
Redis:0>get age
null
Redis:0>get city
null
Redis:0>hset 8000 job SALESMAN
"1"
Redis:0>hmset 9000 ename scott salesman deptno 10
"ERR wrong number of arguments for HMSET"
Redis:0>hmset 9000 ename scott job salesman deptno 10
"OK"
Redis:0>hget 9000
"ERR wrong number of arguments for 'hget' command"
Redis:0>hgetall 9000
1) "ename"
2) "scott"
3) "job"
4) "salesman"
5) "deptno"
6) "10"
Redis:0>hkeys 9000
1) "ename"
2) "job"
3) "deptno"
Redis:0>hlen 9000
"3"
Redis:0>hexist 9000 job
"ERR unknown command 'hexist'"
Redis:0>hexists 9000 job
"1"
Redis:0>hvals 8000
1) "Tom"
2) "SALESMAN"
Redis:0>hdel 8000 job deptno
"1"
Redis:0>hvals 9000
1) "scott"
2) "salesman"
3) "10"
Redis:0>hget all 8000
null
Redis:0>hgetall 8000
1) "ename"
2) "Tom"
Redis:0>hmset 8000 deptno 10 sal 2162163
"OK"
Redis:0>HINCRBY 8000 deptno 10
"20"
Redis:0>
redis列表类型
当我们需要向VALUE保存序列化数据,可以使用列表类型
常见的一些指令。
Redis:0>rpush dname 技术部 后勤部 售后部
"3"
Redis:0>rpop dname
"售后部"
Redis:0>lrem 技术部
"ERR wrong number of arguments for 'lrem' command"
Redis:0>lrem dname 技术部
"ERR wrong number of arguments for 'lrem' command"
Redis:0>lrem dname 技术部
"ERR wrong number of arguments for 'lrem' command"
Redis:0>lrem dname 1 技术部
"1"
Redis:0>
redis集合类型
RDM Redis Console
连接中...
Connected.
Redis:0>sadd empno 8001 8002 8003
"3"
Redis:0>smembers empno
1) "8001"
2) "8002"
3) "8003"
Redis:0>sadd tmp scott jack tom
"3"
Redis:0>smembers tmp
1) "jack"
2) "scott"
3) "tom"
Redis:0>scard empno
"3"
Redis:0>smembers empno 8000
"ERR wrong number of arguments for 'smembers' command"
Redis:0>smember empno 8000
"ERR unknown command 'smember'"
Redis:0>sismember empno 8000
"0"
Redis:0>srem empno 8000
"0"
Redis:0>srem empno 8001
"1"
Redis:0>del empno
"1"
Redis:0>del tmp
"1"
Redis:0>sadd empno 8001 8002 8003
"3"
Redis:0>spop empno
"8001"
Redis:0>srandmember emono 1
redis有序集合