redis基本知识以及云服务器搭建redis集群并用shell脚本管理的详细过程
准备好linux下的redis压缩包
如果是window版的redis,下载的压缩包中会带有win字样。但实际上,我们也是可以用window版的redis客户端连linux版的redis服务器。
使用tar xfz redis-xxx.tar.gz解压压缩包
解压后目录如下
window版中是不会有Makefile和sentinel.conf,前者是linux中才有用的,后者是redis中开启哨兵所需要的配置文件。
到此目录后,执行命令make。
此过程中可能会出现的错误
1.cc not found,先按照下面命令再make
如果是ubantu 执行apt-get install build-essential
如果是centos执行yum install gcc-g++
2.jemalloc not found
make MALLOC=libc
开启服务器
#先修改redis配置文件
#其中有daemonize 改为yes,即开启守护进程,这样就能在后台运行
#也可以加上requirepass 密码,这样打开客户端之后auth 密码
#当然,可以不修改该文件,这样开启服务器后,再起一个命令终端去开启客户端即可
vi redis.config
cd src/
./redis-server #开启服务器,直接用便是使用redis-conf配置文件
./redis-cli #开启客户端,直接使用便是连接127.0.0.1:6379
./redis-server xxx.conf #指定配置文件开启客户端
./redis-cli -h ip -p port #指定ip地址和端口号开启客户端
#可以使用如下命令查看是否开启成功
ps -ef|grep redis-server
redis中的数据类型
string
- get key 获取数据
- set key value 设置数据
- del key 删除数据,删除单条成功1,删除失败0
- mset key value key value…设置多个数据
- mget key key key…获取多个数据
- strlen key 获取字符串长度
- append key value 追加,返回值为数据的长度
- setnx key value 当这个值不存在是创建
- setex key seconds value 设置这个值存在多久
- getrange key start end 截取对应字符串的部分字符[start, end]
- getset 获取key之前的值,并且给它设置一个新的值
- setrange 从指定下标开始替换值
list
- lpush key value1 value2… 左开始
- rpush key value1 value2… 右开始
- lrange key start stop (lrange key 0 -1 意为查询所有)
- lindex key index 获取指定索引的值
- llen key
- lpushx 指定一个已经存在的key值,往表头追加一条数据
- linsert 插入数据
- lset 修改指定下标的值
- ltrim 截取指定列表,然后将截取的值覆盖该列表原来的值
- rpoplpush source destination last of source to first destination
hash
- hset key field value 通过hash存key以及字段和值
- hget key field
- hgetall key
- hdel key field1 field2…
- hmset key field1 value1 …
- hmget
- hlen 获取哈希表中字段的数量
- hexists 获取哈希表中是否存在指定的字段
- hkeys key 获取所有键
- hvals key 获取所有的值
- hincrby hash类型中不存在hdecrby因此做减法是用hincrby key filed -1
- hincrbyfloat
- hsetnx 如果该键值中存在对应字符安则不改变,如果不存在,则放入
set
- 添加数据:sadd
- 获取所有数据:smembers key 拿到的数据为无序的
- 删除数据:srem
- 获取集合数据总量:scard key
- 判断集合中是否包含指定数据:sismember
- 随机获取集合中指定数量的数据:srandmember key [count],源数据集合数量不变
- 随机获取集合中的某个数据并将该数据移除集合:spop key
- sscan 迭代
sorted_set
-
添加数据
zadd key score1(此为用来排序的依据,但不是数据) member1 [score2 member2]
-
获取全部数据
zrange key start stop 小到大
zrevrange key start stop
-
删除数据
zrem key member [member…]
-
获取数据对应的索引
zrank key member(从小到大排第几,从0开始)
zrevrank key member(从大到小排第几,从0开始)
-
score值获取与修改
zscore key memeber
zincrby key increment member
redis中的通用操作
-
删除指定key:del key
-
获取key是否存在:exists key
-
获取key的类型:type key
-
为key改名
-
rename key newkey(newkey已存在则覆盖)
-
renamenx key newkey(newkey不存在则成功)
-
对所有key排序:sort
-
其他key通用操作
help @generic
-
select index:选择数据库,一共有16个0~15
-
expire key :weikey设置时效性