开启端口号
iptables -A INPUT -ptcp --dport 6379 -j ACCEPT
service iptables save
2)启动redis
redis-server redis.conf
启动成功
终止运行
Ctrl+C
使用后台启动
修改配置文件
vim redis.conf
保存退出
再次启动
redis-server redis.conf
启动成功
3)链接Redis
redis-cli
链接成功
输入
ping
返回
3、设置开机启动
(1)先修改redis的安装目录的名称
停止redis
killall redis-server
修改redis的安装目录名称
mv redis-4.0.9 redis
(2)输入命令,新建文件
vim /etc/init.d/redis
输入下面内容:
#!/bin/sh
chkconfig: 2345 90 10
description: Redis is a persistent key-value database
PATH=/usr/local/bin:/sbin:/usr/bin:/bin
REDISPORT=6379
EXEC=/usr/local/bin/redis-server
REDIS_CLI=/usr/local/bin/redis-cli
PIDFILE=/var/run/redis.pid
CONF=“/usr/local/leyou/redis/redis.conf”
case “$1” in
start)
if [ -f $PIDFILE ]
then
echo “$PIDFILE exists, process is already running or crashed”
else
echo “Starting Redis server…”
$EXEC $CONF
fi
if [ “$?”=“0” ]
then
echo “Redis is running…”
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo “$PIDFILE does not exist, process is not running”
else
PID=$(cat $PIDFILE)
echo “Stopping …”
$REDIS_CLI -p $REDISPORT SHUTDOWN
while [ -x ${PIDFILE} ]
do
echo “Waiting for Redis to shutdown …”
sleep 1
done
echo “Redis stopped”
fi
;;
restart|force-reload)
${0} stop
${0} start
;;
*)
echo “Usage: /etc/init.d/redis {start|stop|restart|force-reload}” >&2
exit 1
esac
然后保存退出
注意:以下信息需要根据安装目录进行调整:
EXEC=/usr/local/bin/redis-server # 执行脚本的地址
REDIS_CLI=/usr/local/bin/redis-cli # 客户端执行脚本的地址
PIDFILE=/var/run/redis.pid # 进程id文件地址
CONF=“/usr/local/src/redis-3.0.2/redis.conf” #配置文件地址
(3)设置权限
chmod 755 /etc/init.d/redis
(4)启动测试
/etc/init.d/redis start
启动成功会提示如下信息:
Starting Redis server…
Redis is running…
(5)设置开机自启动
chkconfig --add /etc/init.d/redis
chkconfig redis on
(6)重新启动redis
redis-server redis.conf
1、通过help命令
可以让我们查看到Redis的指令帮助信息∶
在 help后面跟上空格,然后按tab键,会看到Redis对命令分组的组名:
主要包含:
-
@generic:通用指令
-
@string:字符串类型指令
-
@list:队列结构指令
-
@set: set结构指令
-
@sorted_set:可排序的set结构指令
-
@hash: hash结构指令
其中除了 @generic以为的,对应了Redis中常用的5种数据类型:
-
String:等同于java中的,
Map<String,String>
-
list:等同于java中的
Map<String,List<String>>
-
set:等同于java中的
Map<String,Set<String>>
-
sort_set:可排序的set
-
hash:等同于java中的:
Map<String,Map<String,String>>
可见,Redis中存储数据结构都是类似java的map类型。
Redis不同数据类型,只是 'map’的值的类型不同。
2、通用指令
(1)keys
获取符合规则的键名列表。
- 语法:keys pattern
示例: keys *
(查询所有的键)
127.0.0.1:6379> set name jack
OK
127.0.0.1:6379> set age 123
OK
127.0.0.1:6379> keys *
-
“age”
-
“name”
127.0.0.1:6379>
生产环境当中一定要禁用keys *
(2)exists
判断一个键是否存在,如果存在返回整数1,
-
语法:
EXISTS key
-
示例:
127.0.0.1:6379> exists name
(integer) 1
127.0.0.1:6379> exists hhh
(integer) 0
127.0.0.1:6379> exists hhh
(integer) 0
127.0.0.1:6379>
127.0.0.1:6379> exists gae
(integer) 0
127.0.0.1:6379> exists age
(integer) 1
127.0.0.1:6379>
(3)del
DEL:删除key,可以删除—个或多个key
-
语法:DEL key [key …]
-
示例:
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> del hhh
(integer) 0
127.0.0.1:6379> exists name
(integer) 0
(4)select(切换库)
切换到别的库就看不到刚刚 创建的key和value
127.0.0.1:6379> select 2
OK
127.0.0.1:6379[2]> keys *
(empty list or set)
redis默认有16个库(0-15)默认就是在0号库
(5)expire
语法:
-
EXPIRE key seconds
-
作用:设置key的过期时间,超过时间后,清除(默认是永远不会清除)
-
返回值:
-
- 如果成功设置过期时间,返回1。
-
- 如果key不存在或者不能设置过期时间,返回0
(7)TTL
TTL:查看一个key的过期时间·语法:TTL key
-
返回值:
-
返回剩余的过期时间
-
- -1二列永不过期
-
- -2:已过期或不存在·示例:
127.0.0.1:6379> set name jack
OK
127.0.0.1:6379> EXPIRE name 10
(integer) 1
127.0.0.1:6379> TTL name
(integer) 6
127.0.0.1:6379> TTL name
(integer) 2
127.0.0.1:6379> TTL name
(integer) 1
127.0.0.1:6379> TTL name
(integer) 0
127.0.0.1:6379> TTL name
(integer) -2
127.0.0.1:6379>
-2代表死亡
(8)persist
- 语法
persister key
- 作用
移除给定key的生存时间,将这个key 从带生存时间 key转换成一个不带生存时间、永不过期的key .
3、字符串指令
字符串结构,其实是Redis中最基础的K-V结构其键和值都是字符串。
类似Java的Map<String,String>
字符串类型是Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据。可以存储JSON化的对象、字节数组等。一个字符串类型键允许存储的数据最大容量是512MB。
下表列出了常用的 redis 字符串命令:
| 序号 | 命令及描述 |
| — | — |
| 1 | SET key value
设置指定 key 的值 |
| 2 | GET key
获取指定 key 的值。 |
| 3 | GETRANGE key start end
返回 key 中字符串值的子字符 |
| 4 | GETSET key value
将给定 key 的值设为 value ,并返回 key 的旧值(old value)。 |
| 5 | GETBIT key offset
对 key 所储存的字符串值,获取指定偏移量上的位(bit)。 |
| 6 | MGET key1 [key2…]
获取所有(一个或多个)给定 key 的值。 |
| 7 | SETBIT key offset value
对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。 |
| 8 | SETEX key seconds value
将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)。 |
| 9 | SETNX key value
只有在 key 不存在时设置 key 的值。 |
| 10 | SETRANGE key offset value
用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。 |
| 11 | STRLEN key
返回 key 所储存的字符串值的长度。 |
| 12 | MSET key value [key value …]
同时设置一个或多个 key-value 对。 |
| 13 | MSETNX key value [key value …]
同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。 |
| 14 | PSETEX key milliseconds value
这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位。 |
| 15 | INCR key
将 key 中储存的数字值增一。 |
| 16 | INCRBY key increment
将 key 所储存的值加上给定的增量值(increment) 。 |
| 17 | INCRBYFLOAT key increment
将 key 所储存的值加上给定的浮点增量值(increment) 。 |
| 18 | DECR key
将 key 中储存的数字值减一。 |
| 19 | DECRBY key decrement
key 所储存的值减去给定的减量值(decrement) 。 |
| 20 | APPEND key value
如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾。 |
基本的存取命令
自增长
自减
批量增
批量获取
4、字符串指令
Redis的Hash结构类似于Java中的Map<String,Map<String,String>>
,
键是字符串,值是另一个映射。
结构如图:
这里我们称键为key,字段名为hKey,字段值为hValue
Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。
Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。
127.0.0.1:6379> HMSET runoobkey name “redis tutorial” description “redis basic commands for caching” likes 20 visitors 23000
OK
127.0.0.1:6379> HGETALL runoobkey
-
“name”
-
“redis tutorial”
-
“description”
-
“redis basic commands for caching”
-
“likes”
-
“20”
-
“visitors”
-
“23000”
在以上实例中,我们设置了 redis 的一些描述信息(name, description, likes, visitors) 到哈希表的 runoobkey 中。
下表列出了 redis hash 基本的相关命令:
| 序号 | 命令及描述 |
| — | — |
| 1 | HDEL key field1 [field2]
删除一个或多个哈希表字段 |
| 2 | HEXISTS key field
查看哈希表 key 中,指定的字段是否存在。 |
| 3 | HGET key field
获取存储在哈希表中指定字段的值。 |
| 4 | HGETALL key
获取在哈希表中指定 key 的所有字段和值 |
| 5 | HINCRBY key field increment
为哈希表 key 中的指定字段的整数值加上增量 increment 。 |
| 6 | HINCRBYFLOAT key field increment
为哈希表 key 中的指定字段的浮点数值加上增量 increment 。 |
| 7 | HKEYS key
获取所有哈希表中的字段 |
| 8 | HLEN key
获取哈希表中字段的数量 |
| 9 | HMGET key field1 [field2]
获取所有给定字段的值 |
| 10 | HMSET key field1 value1 [field2 value2 ]
同时将多个 field-value (域-值)对设置到哈希表 key 中。 |
| 11 | HSET key field value
将哈希表 key 中的字段 field 的值设为 value 。 |
| 12 | HSETNX key field value
只有在字段 field 不存在时,设置哈希表字段的值。 |
| 13 | HVALS key
获取哈希表中所有值。 |
| 14 | HSCAN key cursor [MATCH pattern] [COUNT count]
迭代哈希表中的键值对。 |
(1)HSET和HGET以及HGETALL
127.0.0.1:6379> hset user:123 name “Rost”
(integer) 1
127.0.0.1:6379> hset user:123 age 21
(integer) 1
127.0.0.1:6379> hget user:123 name
“Rost”
127.0.0.1:6379> hget user:123 age
“21”
127.0.0.1:6379> hgetAll user:123
-
“name”
-
“Rost”
-
“age”
-
“21”
(2)HKEYS
·介绍
HKEYS key
获取所有哈希表中的字段
示例:
127.0.0.1:6379> HKEYS user:123
-
“name”
-
“age”
127.0.0.1:6379> HVALS user:123
- “Rost”
最后
小编精心为大家准备了一手资料
以上Java高级架构资料、源码、笔记、视频。Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术
【附】架构书籍
- BAT面试的20道高频数据库问题解析
- Java面试宝典
- Netty实战
- 算法
BATJ面试要点及Java架构师进阶资料
,shadow_50,text_Q1NETiBA6JOd55uS5a2QaXRibHVlYm94,size_13,color_FFFFFF,t_70,g_se,x_16)
(1)HSET和HGET以及HGETALL
127.0.0.1:6379> hset user:123 name “Rost”
(integer) 1
127.0.0.1:6379> hset user:123 age 21
(integer) 1
127.0.0.1:6379> hget user:123 name
“Rost”
127.0.0.1:6379> hget user:123 age
“21”
127.0.0.1:6379> hgetAll user:123
-
“name”
-
“Rost”
-
“age”
-
“21”
(2)HKEYS
·介绍
HKEYS key
获取所有哈希表中的字段
示例:
127.0.0.1:6379> HKEYS user:123
-
“name”
-
“age”
127.0.0.1:6379> HVALS user:123
- “Rost”
最后
小编精心为大家准备了一手资料
[外链图片转存中…(img-lWRH0QUP-1714311340320)]
[外链图片转存中…(img-epP1UZrr-1714311340320)]
以上Java高级架构资料、源码、笔记、视频。Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术
【附】架构书籍
- BAT面试的20道高频数据库问题解析
- Java面试宝典
- Netty实战
- 算法
[外链图片转存中…(img-T3dbfdFc-1714311340321)]
BATJ面试要点及Java架构师进阶资料
[外链图片转存中…(img-qepdsICc-1714311340321)]