一.单进程:
1.单进程模型来处理客户端的请求。对读写等事件的响应
2.是通过对epoll函数的包装来做到的。Redis的实际处理速变完全依家主进程的执行效率
3.Epoll是Linux内核为处理大批量文件描述符而作了改进的epoll,是LInux 下多路复用10接口slectpoIl的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。
二.Redis五大数据类型
1.String 2.Hash 3.List 4.Set 5.Zset
Zset(sorted set:有序集合):
Redis Zset和set.-样 也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正通过分数来为集合中的成员进行从小到大的排序,Zset的成员是唯一的,但分数(score)却可以重复。
三.各数据类型常用的操作命令
1. 基本命令:
Select命令切换数据库 7
Dbsize查看当前数据库的key的数量
Flushdb:清空当前库
Flushall:通杀全部库
2.String
set/ get/del/append/strlen 设值/取值/删除/续加字符串/计算字符串
127.0.0.1:6379> append k1 12345
(integer) 11
127.0.0.1:6379> get k1
"12345612345"
Incr/decr/incrby/decrby 值加1/值减1/值加x/值减x (一定要是数字才能进行加减 )
127.0.0.1:6379> decrby k2 10
(integer) 4
getrange/setrange. 获取某范围值/设值某范围值
127.0.0.1:6379> GETRANGE k1 0 3
"1234"
127.0.0.1:6379> SETRANGE k1 0 xxx
(integer) 11
127.0.0.1:6379> get k1
"xxx45612345"
setex(set with expire)鍵秒値/setnx(set if not exist) 设置键值存在时间
127.0.0.1:6379> setex k1 10 sas
OK
127.0.0.1:6379> ttl k1
(integer) -2
mset/ mget 设置多键值/获取多键值/
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> mget k1 k2 k3
1) "v1"
2) "v2"
3) "v3"
getset(先get再set)
3.List
lpush/rpush/lrange 逆序入集合/正序/按范围查询
127.0.0.1:6379> lpush list 1 23 44 55 88
(integer) 5
127.0.0.1:6379> LRANGE list 0 -1
1) "88"
2) "55"
3) "44"
4) "23"
5) "1"
lpop/rpop 正逆出栈一个键值
127.0.0.1:6379> lpop list
"88"
lindex,按照索引下标获得元素(从上到下)
llen
lrem key 删N个value
ltrim key 开始index结束index,截取指定范围的值后再赋值给key
rpoplpush 把源列表的最后一个键值赋给目的列表第一个
127.0.0.1:6379> RPOPLPUSH list list1
"44"
4.Set
sadd/smembers 集合添加元素/查看集合
127.0.0.1:6379> sadd set01 11 223 55 666
(integer) 4
127.0.0.1:6379> SMEMBERS set01
1) "11"
2) "55"
3) "99"
4) "223"
scard 获取集合里面的元素个数
127.0.0.1:6379> SCARD set01
(integer) 6
srem key value 删除集合中元素
srandmember key 某个整数(随机出几个数)
127.0.0.1:6379> SRANDMEMBER set01 2
1) "55"
2) "666"
spop key 随机出栈
smove key1 key2 作用是将key1里的某个值赋给key2
5. Hash
hset/hget/hmset/hmget/getall/hdel 设置单元素集合/得到单元素集合/设置多元素/得到多元素/获取所有信息/删除某元素
127.0.0.1:6379> hset user name z3
(integer) 1
127.0.0.1:6379> hget user name
"z3"
127.0.0.1:6379> hmset corrt id 11 name loy age 26
OK
127.0.0.1:6379> hdel user name
(integer) 1
hlen 键的数目
hkeys/hvals 获取键或值
hincrby 给键的值加x
127.0.0.1:6379> HINCRBY corrt age 6
(integer) 32
6.Zset
在set基础上.加一个score值.之前set是k1 v1 v2 v3,現在zset是k1 Score1 v1 score2 v2
zadd/zrange 集合添加元素/范围查询
127.0.0.1:6379> zadd zset01 60 v1 70 v2 80 v3
(integer) 3
127.0.0.1:6379> ZRANGE zset01 0 -1
1) "v1"
2) "v2"
3) "v3"
zrangebyscore key 开始score结束score
zrem key 某score下对应的value值,作用是删除元素
zcard/zcount key score 区间/zrank key values值,作用是获得下标值/zscore key对应值
zrevrank key values值,作用是逆序获得下标值
zrevrange
zrevrangebyscore key 结東score开始score国