redis的启动和停止
配置环境变量
为了能够全局使用redis的相关命令,我们配置环境变量(但是貌似/usr/local/bin已经在环境变量中了)
1echo "export PATH=$PATH:/usr/local/bin" >> /etc/profile
启动服务端
前台启动
1redis-server
前台启动退出方法
按CTRL+C即可退出
后台启动
拷贝redis.conf
首先我们拷贝一份redis.conf到~/redis目录,这也是对redis.conf配置文件的一种备份,之后我们操作的都是拷贝的redis.conf配置文件
12mkdir -v ~/rediscp -v ~/redis-stable/redis.conf ~/redis/redis.conf
设置后台启动
修改我们的redis.conf文件,设置后台启动
1vim ~/redis/redis.conf
将daeonize设置为yes
后台启动
参数带上我们的配置文件名
1redis-server ~/redis/redis.conf
没有提示信息,但是我们可以查看 ...
redis操作之库操作
在redis中,默认有19个库,默认进入的数据库为0号库
select
用于切换数据库,返回值为操作状态
123456789101112131415161718# 默认操作为0号库,向0号库中添加3条数据127.0.0.1:6379> set k1 value1OK127.0.0.1:6379> set k2 value2OK127.0.0.1:6379> set k3 value3OK# 查看0号库的所有key127.0.0.1:6379> keys *1) "k3"2) "k2"3) "k1"# 切换到1号库127.0.0.1:6379> select 1OK# 查看1号库中所有key127.0.0.1:6379[1]> keys *(empty array)
dbsize
查看当前库的key数量
返回值是当前库的key数量
123456789# 查看1号库的key数量127.0.0.1:6379[1]> dbsize(integer) 0# 切换到0号库127.0.0.1:6 ...
redis操作之Zset操作
与set集合不同的是,zset是有序的
zadd
将一个或多个member元素及其score值加入到有序集合key当中
语法:zadd <key> <score1> <value1> <score2> <value2> ……
1234567# 向top中添加以下三个元素# value score# c++ 100# java 200# javascript 150127.0.0.1:6379> zadd top 100 c 200 java 150 javascript(integer) 3
zrange
返回有序集合key中,下标在start和stop之间的元素(包括start和stop)
参数带withscores则表示将分数和值一起返回到结果集中
start=0,stop=-1表示取出zset集合中所有的元素
返回结果集为升序排序
语法:zrange <key> <start> <stop> [withscores]
12345678910111213141516171819 ...
redis操作之String操作
set和get
set:向库中添加string键值对
多次添加相同key的记录时,会覆盖原来键对应的值
get:取出key对应的值
如果key对应的值不存在,返回nil
123456789101112131415161718192021# 添加两条记录127.0.0.1:6379> set k1 v1OK127.0.0.1:6379> set k2 v2OK# 查看当前库中所有的key127.0.0.1:6379> keys *1) "k2"2) "k1"# 查看k1对应的值127.0.0.1:6379> get k1"v1"# 添加键为k1的一条记录127.0.0.1:6379> set k1 value1OK# 查看k1对应的值127.0.0.1:6379> get k1"value1"# 获取k3对应的值127.0.0.1:6379> get k3(nil)
setnx
向库中添加string键值对,只有key不存在时才能设置,key已经存在时就不能设置, ...
redis操作之set操作
set集合是无序、key不可重复的
sadd
添加一个sadd集合
语法:sadd <key> <value1> <value2>
123# 新建一个set集合set1127.0.0.1:6379> sadd set1 v1 v2 v3 v4(integer) 4
smembers
查看set集合中所有元素
123456# 查看set1集合中所有元素127.0.0.1:6379> smembers set11) "v3"2) "v2"3) "v1"4) "v4"
sismember
判断set集合中是否存在某值
123456# 判断set1集合中是否存在v1127.0.0.1:6379> sismember set1 v1(integer) 1# 判断set1集合中是否存在v5127.0.0.1:6379> sismember set1 v5(integer) 0
scard
返回set集合中元素的个数
123# 返回set1集合中元素的个 ...
redis操作之List操作
lpush
从左边插入一个或多个值,新list默认为空
语法:lpush <key1> <value1> <value2> …… <value>
123# 添加一个新的list键值对,从左边插入127.0.0.1:6379> lpush k1 v1 v2 v3(integer) 3
rpush
从右边插入一个或多个值,新list默认为空
语法:rpush <key1> <value1> <value2> …… <value>
123# 添加一个新的list键值对,从右边插入127.0.0.1:6379> rpush k2 v1 v2 v3(integer) 3
lrange
取出key对应指定范围的list值
语法:lrange <key> <起始位置> <结束位置>(包含起始位置和结束位置)
如果起始位置=0,结束位置=-1,表示取出key对应的所有list元素值
123456789101112131415# 取出k1对应0~1范围的l ...
redis操作之key键操作
keys *
查看当前库所有key
返回值:为当前库中所有key
123456789101112131415# 现在redis中没有数据127.0.0.1:6379> keys *(empty list or set)# 向redis中放三条数据127.0.0.1:6379> set k1 value1OK127.0.0.1:6379> set k2 value2OK127.0.0.1:6379> set k3 value3OK# 查看当前库中所有key127.0.0.1:6379> keys *1) "k2"2) "k3"3) "k1"
exists
判断key是否存在
返回值:
返回1说明存在
返回0说明不存在
123456# 判断k1是否存在127.0.0.1:6379> exists k1(integer) 1# 判断key4是否存在127.0.0.1:6379> exists key4(integer) 0
type
查看键对应的值的类型
返回值:键对应值的 ...
redis操作之hash操作
hset
向哈希key中添加字段field和字段映射的值value
语法:hset <key> <field> <value>
123456789# 向哈希user中添加一个字段name和字段对应的值ikun127.0.0.1:6379> hset user name ikun(integer) 1# 向哈希user中添加一个字段age和字段对应的值18127.0.0.1:6379> hset user age 18(integer) 1# 向哈希user中添加一个字段hobby和字段对应的值rap127.0.0.1:6379> hset user hobby rap(integer) 1
hget
从哈希key中取出一个字段field对应的值value
123456789# 取出user中的name字段对应的值127.0.0.1:6379> hget user name"ikun"# 取出user中的age字段对应的值127.0.0.1:6379> hget user age"18&q ...
RedisTemplate常用方法详解
randomKey
public K randomKey()
从redis的key集合中随机返回一个key,如果key集合为空,则返回null
expireAt
public Boolean expireAt(K key, Date date)
为指定key的键值对设置过期时间(在什么时间过期),如果key不存在返回false,设置成功返回true
expire
default Boolean expire(K key, Duration timeout)
参数说明
key: 键
Duration:多少时间后过期,可以传入不同的Duration对象来表示时间
如下所示,就不演示了
Boolean expire(K var1, long var2, TimeUnit var4)
参数说明
var1:key
var2: 多少个单位时间
var4: 单位时间,TimeUnit是一个枚举类,有以下几个枚举值
NANOSECONDS:纳秒
MICROSECONDS微秒
MILLISECONDS:毫秒
SECONDS:秒
MINUTES:分
HOURS:时
DAYS:天
...
CentOS安装redis
参考官方文档:Install Redis from Source | Redis
源码方式
安装
下载源码
1wget https://download.redis.io/redis-stable.tar.gz
解压源码
1tar -xzvf redis-stable.tar.gz
得到的解压后的文件夹
进入文件夹F
1cd redis-stable
编译源码包
1make
编译完成后,目录结构如下
安装
1make isntall
至此,源码方式安装就已经完成
卸载
删除安装好的redis相关文件
安装好redis后,redis的相关操作文件默认放在/usr/local/bin目录下
1ls /usr/local/bin
我们将其删除即可
1rm -rf /usr/local/bin/redis*
删除源码包
我们安装时遗留下的源码包和源码安装包,可以将它们删除,达到彻底删除的效果
1rm -rfv ~/redis*
好了,现在已经彻底卸载redis了
snap方式
安装
安装epel-release源
1sudo yum install ...