Redis
redis 跟 mysql 不同 是一个 非关系型数据库 也叫 nosql
mysql 是关系型数据库 数据持久化
nosql
- redis
- mongodb
- couchdb
- memcached
- rabbitMQ
数据类型 简单 key value 在内存中进行操作
安装 redis
wget -c http://download.redis.io/releases/redis-3.2.9.tar.gz
tar -zxvf redis-3.2.9.tar.gz
mv redis-3.2.9 /usr/local/redis
make install
cd /usr/local/redis/src
脚本 | 说明 |
---|---|
redis-server | 服务器 |
redis-cli | 客户端 |
redis-check-aof | aof 修复工具 |
redis-check-rdb | rdb 修复工具 |
redis-sentinel | redis 2.8以后出现 哨兵服务器 |
aof 和 rdb 实线了 redis 数据的持久化
启动 redis
cd /usr/local/redis/src
./redis-server
默认端口号 6379
redis 单个key 512M
redis 支持库 0-15 16个库
redis 除了key value 以外还有其它的数据类型
后台启动
vim /usr/local/redis/redis.conf
/daemon
将daemonize 改为 yes
:wq!
/usr/local/redis/src/redis-server /usr/local/redis/redis.conf
ps -aux | grep redis
netstat -ntlp | grep 6379
连接redis
root@JD:/usr/local/redis# redis-cli
127.0.0.1:6379> ping
PONG 说明成功
redis-cli -h ip地址 -p 端口号
通过端口号 区分redis
vim /usr/local/redis/redis.conf
将 port 改为 6380
bind 127.0.0.1 修改为 0.0.0.0 允许所有的主机 连接redis服务器
保存重启
ps -aux |grep redis
kill -9
/usr/local/redis/src/redis-server /usr/local/redis/redis.conf
redis-cli -h 127.0.0.1 -p 6380
配置redis开机启动
cd /usr/local/redis/utils
vim redis_init_script
REDISPORT=6380 改成你在/usr/local/redis/redis.conf里边配置的port
EXEC=/usr/local/redis/src/redis-server #redis-server的目录
CLIEXEC=/usr/local/redis/src/redis-cli #redis-cli的目录
PIDFILE=/var/run/redis_${REDISPORT}.pid #存放redis的进程文件
CONF="/usr/local/redis/redis.conf" #redis的配置文件路径
vim /etc/rc.local
写入
/usr/local/redis/utils/redis_init_scirpt start
或者
/usr/local/redis/utils/redis_init_scirpt start /usr/local/redis/redis.conf
数据类型 不止这五种 常用的就是这五种
- string
- hash
- list
- set
- zset
设置密码
redis-cli -h 127.0.0.1 -p 6380
config set requirepass 你的密码
下次登录
redis-cli -h 127.0.0.1 -p 6380
auth 你的密码
string
string 是redis 的基本类型 key value 一个key 对应一个value 二进制 安全的 可以包含任何数据 图像 音频 其他对象 都可以 单个键最大 512M
set
127.0.0.1:6380> set name kangbazi
OK
name 就是 key
-----------------------
kangbazi 就是 key 对应的 value
get
get name name就是key 获取key对应的值
127.0.0.1:6380> del name 删除制定的key
(integer) 1 1表示删除成功
127.0.0.1:6380> set name 12
OK
127.0.0.1:6380> incr name 制定key的值自增1 整数
127.0.0.1:6380> decr name 指定key的值自减1 整数
127.0.0.1:6380> get name
"-1"
127.0.0.1:6380> incrby name 1000 指定的key 自增指定的值 整数
(integer) 999
127.0.0.1:6380> decrby name 500 整数
(integer) 499
incrbyfloat name 12.1 指定的值自增 浮点值
append name kangbazi
(integer) 29
127.0.0.1:6380> get name
"511.10000000000000001kangbazi"
往 指定key 对应的value 值后面 添加内容
hash 就是键值对的集合 一般用来存对象 做缓存用
可以存2的32次方-1个键值对
一般一张表 一个hash
hmset user:1 username xinyun age 18 height 180cm weight 90kg
user 键
为了区分用户
一般加id
user:1
hgetall user:1
list
127.0.0.1:6380> lpush python1804 jinlong
(integer) 1
127.0.0.1:6380> lpush python1804 tengfei
(integer) 2
127.0.0.1:6380> lpush python1804 jinpeng
(integer) 3
127.0.0.1:6380> rpush python1804 jiahui
(integer) 4
127.0.0.1:6380> rpush python1804 xiejiahui
(integer) 5
127.0.0.1:6380> rpush python1804 zhihao
(integer) 6
127.0.0.1:6380> LRANGE python1804 0 4
1) "jinpeng"
2) "tengfei"
3) "jinlong"
4) "jiahui"
5) "xiejiahui"
127.0.0.1:6380> LRANGE python1804 0 5
1) "jinpeng"
2) "tengfei"
3) "jinlong"
4) "jiahui"
5) "xiejiahui"
6) "zhihao"
lpush key 从左侧进入队列
rpush key 从右侧进入队列
lpop key 从左侧弹出第一个
rpop key 从右侧弹出第一个
设置key的过期时间
set name test 如果 不设置国企时间 key 永久存在
127.0.0.1:6380> expire name 10 设置国企时间 秒为单位
(integer) 1
127.0.0.1:6380> get name
"test"
127.0.0.1:6380> get name
(nil)
ttl key 查看 key的过期时间
type key 查看key的数据类型
select 0 选择0号库 默认进入0号库
select 1 选择1号库
keys * 查看库里所有的key
keys u* 查看库里u开头的key
flushdb 删除当前库中所有的key
flushall 删除所有库中的key
redis常用操作命令
启动redis服务器:redis-verser
启动redis浏览器:redis-cli
使用时先启动服务器,之后在浏览器进行操作命令。
连接Redis命令—非集群
redis-cli.exe -h server.host -p 6379
连接Redis命令—集群
redis-cli.exe -c -h server.host -p 6379
doc 环境命令:
查看server运行情况 :ping
查看 key值 :get key键
设置key值 :set key键 key值
查看键值类型:type key
删除键key :del key键
检测是否存在键 :exists key键
查看server 信息 :info
添加值到最后 : append key value
获取字符串长度 : strlen key
获得多个键值 :mget key [key…]
设置 多个键值 : mset key value [key value …]
列表类型:
lpush key value [ value … ]
rpush key value [ value … ]
lpush 命令用来向列表左边增加元素,返回表示增加元素后列表的长度
rpush 命令用来向列表右边增加元素,返回表示增加元素后列表的长度
获得列表片段 : lrange key start stop
获得列表中的某一片段,返回索引从 start 到 stop 之间的所有元素(包括两端的元素) 索引开始为 0
删除列表中指定的值 :lrem key count value