Linux10

nosql not only sql

用户画像:

热点数据:经常被使用的数据

mysql

安装

  • 可以使用yum 安装,要先配置epel源

    yum install -y redis
    
  • 可以编译安装

    wget http://download.redis.io/releases/redis-5.0.5.tar.gz
    tar xf redis-5.0.5.tar.gz
    cd redis-5.0.5/
    make
    

redis 可执行文件

redis-benchmark  #性能测试
redis-check-aof  # 检查修复aof文件
redis-check-rdb  # 检查修复rdb文件
redis-cli        # redis的客户端
redis-sentinel   # redis的集群
redis-server     # redis的服务端
redis-trib.rb     #集群管理

启动redis

./src/redis-server 默认端口是6379,默认启动会占用终端

性能测试

./src/redis-benchmark -q
PING_INLINE: 73855.24 requests per second
PING_BULK: 73800.73 requests per second
SET: 74074.07 requests per second
GET: 72833.21 requests per second
INCR: 73637.70 requests per second
LPUSH: 73855.24 requests per second
RPUSH: 70175.44 requests per second
LPOP: 72202.16 requests per second
RPOP: 74183.98 requests per second
SADD: 74962.52 requests per second
HSET: 75642.96 requests per second
SPOP: 73746.31 requests per second
LPUSH (needed to benchmark LRANGE): 74850.30 requests per second
LRANGE_100 (first 100 elements): 48379.30 requests per second
LRANGE_300 (first 300 elements): 24172.11 requests per second
LRANGE_500 (first 450 elements): 18670.65 requests per second
LRANGE_600 (first 600 elements): 15384.62 requests per second
MSET (10 keys): 78186.08 requests per second
默认是100000,50个同时发起连接

连接

./src/redis-cli
-h ip地址
-p 端口
-s 套接字
-a 密码  
-n 指定redis的库
redis的命令是不区分大小写

redis的数据类型

  • string
  • hash
  • list
  • set
  • zset

命令相关

ping

用来测试redis是否连通,返回值是pong

info

获取系统的信息

echo

打印内容,测试使用

quit

退出

select

切换redis的库,总共有16个,0-15

del

删除指定的一个或者多个key,不存在的key忽略

exists

判断key 是否存在,存在是1,不存在是0

expire key seconds

给指定的key设置存活时间,当key过期以后,就自动删除

ttl

查看key的存活时间,-2 key不存在 -1 永久生效

keys pattern

查找所有符合pattern 的key,支持通配符

move key db

移动当前的key到指定的db里面,成功返回1,失败返回0

pexpire key 毫秒

给一个key 设置过期时间,单位是毫秒

pttl key

查看key的存活时间,但是为毫秒

randromkey

随机获取一个key,但是不删除,如果数据库为空,则返回空

rename

重命名key,如果源key不存在,则报错,如果目标key存在,则覆盖

renamenx

重命名key,如果源key不存在,则报错,如果目标key存在,则不变

type

查看key所存储的数据类型,如果没有这个key,则返回none

string

set

设置key value

如果key存在,则覆盖,不存在,则新建

ex second 设置key的存活时间,单位是秒

px 毫秒 设置key的存活时间,单位是毫秒

nx 如果键不存在,则新建,如果存在,则返回nil

xx 只有键存在,才能操作

get

获取key对应的value,只能获取一个,如果key存在,则返回值,如果key不存在,则返回nil

mset

批量创建key vlaue对应关系,会覆盖已存在的key

mget

批量获取key,如果不存在,则返回nil

getset

给指定的key设置新value,并返回原来的value,如果key不存在,则返回nil

strlen

返回value的长度

append

如果key存在,则追加,如果key不存在,则新建

incr

将key中存在的数加1,只能对数字有效

decr

将key中存在的数值减1,只能对数字有效

incrby

将key中存在的数值指定增加多少,只对数字有效

decrby

将key中存在的数值减少指定的值,只能对数字有效

getrange

切片,同python类似,不能使用步长

incrbyfloat(默认保留17位)

将key中存在的数值增加指定的浮点数

list

lpush

将一个或者多个value插入到列表的头部

lpop

移除并返回列表key的头一个元素

lrange

查看列表指定的元素,全部显示是0,-1

rpush

将一个或者多个value插入到列表的尾部(最后边)

rpop

删除尾部的值

rpushx

将value插入到key的尾部,key必须存在才可以

lpushx

将value插入到key的头部,key必须存在才可以

lindex

从表头开始,获取下标为index的value

linsert

将value插入到key指定的元素前或者后

before 前

after 后

如果value不存在,则不操作

llen

获取列表长度

lrem

删除列表中的value

  • count > 0 从表头往表尾的方向查找,删除指定的个数
  • count = 0 全部删除
  • count < 0 从表尾的位置往表头的方向查找,删除指定的个数

lset

替换指定的索引位置的value,如果索引超出范围,则报错

ltrim

列表的切片

hash

{‘db‘:{"redis":‘redis.conf‘,"mysql‘:‘my.cnf‘,"nginx":"nginx.conf"}}

hset

给hash增加key value值

hlen

获取hash的长度

hget

获取某个hash里面key的value

hgetall

获取所有的键值对

hmset

批量增加键值对

hmget

批量获取键值对

hsetnx

给指定的hash增加键值对,如果原来的field存在,则操作无效,如果不存在,则新增

hkeys

获取hash表中所有的field

hvals

获取hash表中所有的value

hdel

删除hash表中的一个或者多个field-value

hexists

判断hash表中的field是否存在,如果存在,则为1,不存在则为0

hincrby

给hash表中的field增加指定的数值,只限于数字

hincrbyfloat

给hash表中的field增加指定的浮点,只限于数字

set

sadd

给集合添加值,如果值存在,则什么都不操作,如果值不存在,则添加

SMEMBERS

获取集合所有的成员

scard

获取集合的个数

sdiff

获取两个集合的差集,前面存在,但是后面不存在的

sinter

获取两个集合的交集

sunion

获取两个集合的并集

SISMEMBER

判断元素是否在集合中,如果存在,则为1,如果不存在则为0

smove

将指定的元素从一个集合移动到另外一个集合中,如果源集合存在,则移动,如果不存在,则忽略,如果目标集合存在,直接移动,如果目标集合不存在,则新建集合并移动

spop

随机删除指定个数的元素,并把删除的元素打印出来

SRANDMEMBER

随机获取指定个数的元素

  • 默认随机获取一个
  • 如果count > 0,
    • 如果count大于集合的总数的话,则全部取出
    • 如果count小于集合总数的话,则随机取出count个
  • 如果count<0,则随机count的绝对值次取出值

srem

删除指定的一个或者多个元素

Linux10

上一篇:linux 下安装mysql (ubuntu 12.04)


下一篇:Linux一些基础命令