Redis入门
安装与配置
首先,我们在redis的官网https://redis.io下载我们需要的安装包到我们的服务器上,随后解压。
tar -xzvf redis-5.0.5.tar.gz
解压后我们就得到了redis的源码包,然后我们直接安装
make && make install
接着我们开始配置服务
cp utils/redis_init_scripts /etc/init.d
mkdir /usr/local/redis
mkdir /usr/local/redis/working
cp redis.conf /usr/local/redis
接着我们开始编译redis.conf,需要修改的属性如下
daemonize yes
dir /usr/local/redis/working
bind 0.0.0.0
requirepass 123456 # 这里我把密码设成123456
然后,我们开始修改/etc/init.d/redis_init_scripts
CONF="/usr/local/redis/redis.conf"
然后,为这个脚本添加权限和配置开机自启动
chmod 777 /etc/init.d/redis_init_scripts
chkconfig redis_init_scripts on
启动redis,用客户端直接登陆,并输入密码
/etc/init.d/redis_init_scripts start
redis-cli
# 看到下面这个标示符就是进入到redis里面了
127.0.0.1:6379>
127.0.0.1:6379> auth 123456
OK # 看到ok就是成功权限验证了
基本命令
String
key相关
keys * : 查看所有的key(不建议生产上使用,影响性能)
type key : 可以的类型
String 类型
get/set/del:查询/设置/删除
set rekey data:设置已经存在的key,会覆盖
setnx rekey data:设置已经存在的key,不会覆盖
set key value ex time:设置带过时的数据
expire key second:给key设置超时时间
ttl key:产看剩余时间,-1永不过期,-2过期
append key value:给key的原value追加一个新的value
strlen key:查看value的长度
incr key:累加1
decr key:累减1
incrby key num:加上指定的数量
decrby key num:减上指定的数量
getrange key start end:截取数据,左右包闭
setrange key start newData:从start位置开始替换后面的值
mset key value [key value…]:连续设置值
mget key [key…]:连续取值
msetnx:连续设置,如果已存在就不设置了
其他
select index:选取数据库,默认有16个,从0开始到15
flushdb:删除当前db中的数据
flushall:删除所有db中的数据
hash
类似于map,一般可以存储一个对象(但不能有嵌套对象)
使用
hset key field value:
-> hset user name doudou
-> hset user age 18
hget key field
-> hget user name
hmset key field1 value1 field2 value2
-> user name doudou age 18 gender man
hmsetnx 当属性中已经存在了,就不添加了
hmget key field1 field2
hgetall key 获取整个对象所有属性
hincrby user age 2:给user这个key的age属性添加2
hincrbyfloat user money 2.2:添加的是浮点数
hlen user:有多少个属性
hexists user age:判断user这个对象中是否有age这个属性
hkeys user:获取所有属性的名称(键)
hvalues user:获取所有值
hdel user:删除对象
list
lpush userlist 1 2 3 4 5 构建一个list,从左边开始往右边放入
rpush userlist 1 2 3 4 5 构建一个list,从右边开始往左边放入
lrange list start end 从左边开始向右取,start和end为开始和结束的下标
lpop从左边去一位出来
rpop从右边取一位出来
llen list 获取其长度
lindex list index 获取list下标的值
lset list index value 把下标上的值替换
linsert list before/after value 插入一个新的值,可以从下标的前面或者后面
lrem list num value 删除几个相同的值,num为重复的数量
ltrim list start end 截取值,替换原来的list,list的值就是截取到的sublist
zset
根据权重分数的有序set
zadd key 10 value1 20 value2 30 value3 分数在前面
zrange key 0 -1 取出所有的值
zrange key 0 -1 withscores 带有分数
zrank key value 获取对应的下标
zscore key value 获取对应的分数
zcard key 统计个数
zcount key 分数1 分数2 统计个数
zrangebyscore zset 分数1 分数2:查询分数之间的member(包含分数1 分数2)
zrangebyscore zset (分数1 (分数2:查询分数之间的member(不包含分数1 和 分数2)
zrangebyscore zset 分数1 分数2 limit start end:查询分数之间的member(包含分数1 分数2),获得的结果集 再次根据下标区间做查询
zrem zset value:删除member