### string 字符串
string是最简单的类型,可以理解成与Memcached一样的类型,一个key对应一个value,其上支持的操作与Memcached的操作类似,它的功能更丰富,可以存二进制的对象。
~~~
set key value [EX seconds] [PX milliseconds] [NX|XX]
--> get value #设置单个string,若值已经存在,则覆盖
mset key1 value ...--> mget key1 key2 ... #设置多个string,若值已经存在,则覆盖
setnx key value --> get key value #当键的值为空时,才能设置成功;否则设置失败
setex key timeout value --> ttl key #设置value超时时间
APPEND key value #追加值
DECR key
DECRBY key decrement
INCR key
INCRBY key increment
STRLEN key
~~~
### list链表 消息队列
list是一个链表结构,主要功能是push、pop、获取一个范围的所有值等。操作中key理解为链表的名字。使用 List 结构,我们可以轻松地实现最新消息排行等功能(比如新浪微博的 TimeLine )。
list 的另一个应用就是消息队列,可以利用 list的push操作,将任务存在list中,然后工作线程再用pop操作将任务取出进行执行。
![](http://i1.piimg.com/588926/caeead324d0cf95c.png)
~~~
lpush lista a #从左侧压入一个元素a
lpop lista #从左侧取出
rpush lista 1 #从右侧压入一个元素1
rpop lista #从右侧取第一个元素
lrange lista 0 -1 #0为头,-1为尾
linsert lista before 2 3 #在2的前面插入一个元素为3
lset lista 4 bbb #把第5个元素修改为bbb
lindex lista 0 #查看第1个元素
llen lista #查看链表中有几个元素
~~~
3 set集合
共同的关注、爱好,提供了交集、并集、差集
~~~
sadd key value1 value2 ... #添加元素
srem key value1 value2 ... #删除元素
spop key #从集合key中随机取出一个元素,并删除
srandmember key #从集合key中随机取出一个元素。并不删除
smembers key #显示集合
~~~
~~~
差集
# sdiff seta setb 从集合seta中除去seta和setb的交集
# sdiffstore setc seta setb 从集合seta中除去seta和setb的交集,保存至setc
交集
# sinter seta setb 集合seta和setb的交集
# sinterstore setc seta setb 集合seta和setb的交集,保存至setc
并集
# sunion seta setb 集合seta和setb的并集
# sunionstore setc seta setb 集合seta和setb的并集,保存至setc
查看集合中是否有某个元素
sismember seta value
~~~
4 sorted set有序集合
~~~
zadd zseta 11 123 #创建有序集合
zrange zseta 0 -1 [withscores] #显示所有元素,按顺序显示,可以带上分值
zrem zseta 222 #删除指定元素
zrank zseta 222 #返回元素的索引值,索引值从0开始,按score正向排序
zrevrank zseta 222 #同上,不同的是,按score反序排序
zrevrange zseta 0 -1 #反序显示所有元素,并带分值
zcard zseta #返回集合中所有元素的个数
zcount zseta 1 10 #返回分值范围1-10的元素个数
zrangebyscore zseta 1 10 #返回分值范围1-10的元素
zremrangebyrank zseta 0 2 #删除索引范围0-2的元素,按score正向排序
zremrangebyscore zseta 1 10 #删除分值范围1-10的元素
~~~
### hash
在Memcached中,我们经常将一些结构化的信息打包成hashmap,在客户端序列化后存储为一个字符串的值(一般是 JSON 格式),比如用户的昵称、年龄、性别、积分等。
将多个value存到一个hash中。
~~~
单存
hset hash1 name hiyang
hset hash1 id 2
hset hash1 gender M
批存
hmset hash1 name xiaowang age 20 gender F id 10
单取
hget hash1 name
批取
hgetall hash1 # 所有
hmget hash name age #取部分
取所有值value
hkeys hash1
取所有值value
hvals hash1
删除
hdel hash1 name
查看hash的field数量
hlen hash1
~~~
### redis键值操作
~~~
keys key*使用通配
exists key1 key1是否存在
del key 删除key
expire zset 10 设置过期时间
ttl key #查看键还有多长时间过期,单位是s,当key不存在时,返回 -2。 当key存在但没有设置剩余生存时间时,返回-1 。 否则,返回key的剩余生存时间。
select 0 #代表选择当前数据库,默认进入0 数据库
move age 1 #把zset1移动到数据库1
persist key1 #取消key1的过期时间
randomkey #随机返回一个key
rename oldname newname #重命名key
type key1 #返回键的类型
dbsize #返回当前数据库中key的数目
info #返回redis数据库状态信息
flushdb #清空当前数据库中所有的键
flushall #清空所有数据库中的所有的key
~~~
- 目录
- 离散的内容
- IO模型
- 网卡绑定
- ssh
- 硬件测试
- 硬件
- limits
- 网络流量
- 硬盘IO
- 硬盘
- tmux
- 主机名和域名
- http_proxy
- iptables
- 内核参数
- 块设备和字符设备
- 内存
- 虚拟内存并非交换分区
- 网络延时
- 概念
- 多核压缩
- linux基础
- SSH协议
- 软件管理
- yum
- 制作本地源 yum系列
- 制作本地源 apt系列
- apt
- 在 Linux 中移除从源代码安装的程序的一种简单的方法
- 其他
- 源码编译和二进制安装后更改配置
- DNS
- bind
- 守护进程
- 特殊权限
- limit.conf配置
- 网络
- shell-ok
- 变量ok
- 数组ok
- 系统变量和环境变量
- 运算符和计算-ok
- 条件测试-ok
- 选择-ok
- shell循环-ok
- 输出echo和printf-ok
- 技巧-ok
- pre-web
- http协议
- web服务器
- Apache
- apache安装
- yum安装
- 二进制安装
- 编译安装
- httpd命令
- 运行 监控apache
- apache配置文件
- 常用配置
- MPM多处理模块
- 编译模块
- apache模块
- apache核心模块
- apache标准模块
- apache第三方模块
- 虚拟主机
- 1
- CGI-FastCGI-SSI
- 别名和重定向
- apache应用
- 301重定向
- apache防盗链
- http转化为https
- 访问时间段控制
- 控制访问目录
- 限制指定USER_AGENT
- 不同客户端访问不同网页
- apache黑名单
- httpd之禁止解析php
- 不记录css/js/img的访问日志
- 浏览器端静态缓存
- apache访问日志自动切割
- order-require
- 压缩传输
- httpd-ssl
- apache代理
- 正向代理
- 反向代理
- apache调优
- httpd压力测试工具ab
- CGI测试
- php
- php原理
- httpd和php的结合方式
- php yum安装之DSO模式
- php 编译安装之DSO模式
- php-fpm详解
- php yum安装之php-fpm模式
- php 编译安装之FastCGI模式
- php扩展之mysql
- php扩展之gd
- php扩展之pcntl
- php扩展之xcache
- php扩展之ZendGuardLoader
- phpMyAdmin
- wordpress
- 数据库-mysql
- 数据库原理
- mysql数据库原理
- mysql源码编译安装
- mysql二进制包安装
- mysql命令行工具
- 更改密码
- 数据库授权grant
- mysql日志
- 命令
- 常用
- 小命令大作为
- awk 报告生成器
- 网络命令
- 命令查找
- 压缩归档命令
- 文件管理
- 文件管理命令
- 文件查看命令
- 目录管理命令
- 用户管理命令
- 用户权限管理
- curl
- cheat
- chrony
- command
- crontab任务计划
- cut
- date
- dd
- df
- echo
- find
- grep
- hash
- iftop
- kill pkill killall
- ls
- lsmod和modprobe
- lsof
- man
- mkpasswd
- mount
- mtr
- netstat
- nmap
- nc
- NTP
- passwd
- rm
- rdate
- pv
- sar系统活动情况报告
- sed文本处理命令
- setup
- screen
- shutdown
- sort 命令
- sudo
- tcpdump
- top
- uniq
- wget
- who
- xargs
- 监控
- zabbix邮件报警
- Redis
- redis安装
- redis数据类型和操作方法
- redis持久化和配置
- redis主从配置
- php连接redis
- redis实现session共享
- 安装测试
- redis设置密码
- ELK日志分析系统
- elasticsearch
- logstash
- logstash插件
- filebeat日志收集
- kibana
- jenkins
- jenkins安装与配置
- 案例1
- 案例2
- 案例3
- 代码仓库之svn
- svn服务端配置
- 常用操作
- svn备份
- LB集群
- LVS负载均衡集群
- ipvsadm使用方法
- LVS调度方法
- NAT原理
- NAT实践
- DR原理
- DR实践
- TUN原理
- LVS持久连接
- HA集群
- HPC集群
- 共享存储
- ftp协议
- vsftpd
- NFS
- 网站架构发展
- 文件同步
- rsync基本用法
- rsync安装和使用_拉取模式
- lsyncd安装和用法
- zabbix
- zabbix服务端安装
- zabbix客户端安装
- zabbix编译安装
- zabbix监控tomcat
- zabbix监控mysql
- gitlab
- supervisor
- nsq
- ruby
- nodejs
- consul
- mesos
- zookeeper
- rwho
- 对象存储
- 工具
- rclone
- minio
- linux 性能调优
- CPU
- 第一部分 CPU
- 安全