一个物理机中,可以有一个或多个redis实例,默认端口号6379,且redis是单进程,单线程,单实例的来处理用户的请求的 ,可以并发处理很多请求,那么redis是如何变得很快的?
客户端的连接,先到达系统的内核,redis和内核之间,使用的是epoll,而且因为是单线程,到来的数据是顺序处理的,删除创建修改不会同时发生,不用加锁,这个顺序指的是一个连接内的指令是顺序的,客户自己要对请求进行处理。
value具有五种类型:
String(Byte)
list 列表(实现队列,元素不唯一,先入先出原则)
set 集合(各不相同的元素)
hash散列值(hash的key必须是唯一的)
sort set 有序集合
String 字符串:
set 命令value key 后还有两个后缀,第一个后缀是设置过期时间,第二个后缀,nx是表示没有就设置,有就不覆盖,xx表示没有就没有,有就覆盖。说白了,nx表示创建,xx表示更新
mest批量设置,mget批量取出
append向后追加
getrange 取出指定范围的,[0,3]
正反向索引
setrange 要设置的键 起始索引 要覆盖的内容 从指定位置开始覆盖value
获得指定key的value的长度
查看key对应的value的类型
object encoding,看
命令行连接redis:
redis-cli
redis默认提供了16个库(0-15),库之间的数据是隔离的。连接的时候可以通过-n来指定连接哪个库,0号库是不能改名字的,默认是0号库,可以通过select选择库(nil代表没有)
也可以在连接的时候。直接选择进入八号库,-p选择进入哪个端口,-n指定进入哪号库
Redis 命令参考 — Redis 命令参考http://redisdoc.com/ keys pattern(表达式)
找出所有符合这个规则的
FLUSHDB 清库



